Машинное обучение (РЭУ)
Материал из MachineLearning.
(→Задания) |
(→Вопросы к экзамену 30.05.2016) |
||
(51 промежуточная версия не показана) | |||
Строка 2: | Строка 2: | ||
== Краткое описание == | == Краткое описание == | ||
- | Курс ведется для магистров РЭУ им.Г.В.Плеханова. В курсе рассматриваются основные задачи анализа данных и обучения по прецедентам | + | Курс ведется для магистров РЭУ им.Г.В.Плеханова. В курсе рассматриваются основные задачи анализа данных и обучения по прецедентам. По изложению для каждой рассматриваемой задачи изучаются математические основы методов, лежащие в их основе предположения о данных, взаимосвязи методов между собой и особенности их практического применения. |
Большое внимание уделено освоению практических навыков анализа данных, отрабатываемых на семинарах, которое будет вестись с использованием языка python и соответствующих библиотек для научных вычислений. | Большое внимание уделено освоению практических навыков анализа данных, отрабатываемых на семинарах, которое будет вестись с использованием языка python и соответствующих библиотек для научных вычислений. | ||
От студентов требуются знания линейной алгебры, математического анализа и теории вероятностей. | От студентов требуются знания линейной алгебры, математического анализа и теории вероятностей. | ||
+ | |||
+ | ==Объявление== | ||
+ | На первой паре курса по анализу данных 23.05.2016 будет проведена первая часть экзамена. Экзамен будет устный. Каждому студенту будет задан 1 случайный вопрос из списка ниже. Переговариваться и пользоваться никакими материалами нельзя. | ||
+ | |||
+ | 30.05.2016 будет проведена вторая часть экзамена по тем же правилам. | ||
+ | |||
+ | Зачет по курсу будет выставляться в первую очередь - на основе выполнения домашних работ, во вторую - на основе сдачи экзаменов. При обнаружении плагиата в домашних работах баллы не будут зачитываться ни тому, кто списал, ни тому, у кого списали. Для выполнения домашних работ необходимо самостоятельно изучить ссылки раздела "Материалы для самостоятельного изучения" ниже. | ||
+ | |||
+ | Тем, кто не был на занятиях для подготовки к экзамену требуется ознакомиться со слайдами первых 2х лекций [http://www.machinelearning.ru/wiki/index.php?title=%D0%9C%D0%B0%D1%88%D0%B8%D0%BD%D0%BD%D0%BE%D0%B5_%D0%BE%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%28%D0%BA%D1%83%D1%80%D1%81_%D0%BB%D0%B5%D0%BA%D1%86%D0%B8%D0%B9%2C_%D0%92.%D0%92.%D0%9A%D0%B8%D1%82%D0%BE%D0%B2%29/2015-2016 отсюда] и видео-записями первых 2х лекций [https://www.youtube.com/playlist?list=PLJOzdkh8T5kp99tGTEFjH_b9zqEQiiBtC отсюда]. | ||
+ | |||
+ | ==Вопросы к экзамену 30.05.2016== | ||
+ | |||
+ | 1. Структура решающего дерева, метод спуска по дереву в общем случае | ||
+ | |||
+ | 2. Спецификация решающего дерева для метода CART | ||
+ | |||
+ | 3. Выбор признака и порога для CART | ||
+ | |||
+ | 4. Критерий остановки при построении дерева | ||
+ | |||
+ | 5. Функция неопределенности (перемешанности) для задачи регрессии (выписать формулой явно ). | ||
+ | |||
+ | 6. Функция неопределенности (перемешанности) для задачи классификации (выписать формулой явно). | ||
+ | |||
+ | 7. Как назначаются прогнозы листьям дерева в случае задач регрессии и классификации. | ||
+ | |||
+ | 8. Метод ближайших соседей для задачи регрессии и классификации. Его обобщение через взвешенный учет объектов (для повторения) | ||
+ | |||
+ | [[Media:Kitov-ML-REU-Decision_trees.pdf|Презентация с материалами для подготовки]] | ||
+ | |||
+ | Прием экзамена начнется с опроса должников с прошлого раза: Олега Ширко, Вячеслава Домрачева и Никиты Кузнецова по неотвеченным билетам. | ||
+ | |||
+ | Для получения зачета необходимо сделать и прислать мне заранее (до воскресенья 16-00) хотя бы одну домашнюю работу. Кто сделает - можете брать зачетки. | ||
+ | |||
+ | ==Вопросы к экзамену 23.05.2016== | ||
+ | |||
+ | 1. Задачи машинного обучения - обучение с учителем, без учителя. Привести пример каждой задачи на практике. | ||
+ | |||
+ | 2. Задачи регрессии и классификации. Задачи снижения размерности и кластеризации. Привести пример каждой задачи на практике. | ||
+ | |||
+ | 3. Функции потерь (loss-функции) и функции выигрыша (score-функции). Привести примеры каждой функции. | ||
+ | |||
+ | 4. Что такое класс функций, в котором ищется решение задачи обучения с учителем? Привести пример классов функций для задачи регрессии и классификации. | ||
+ | |||
+ | 5. Как находятся оптимальные параметры прогнозирующей модели? | ||
+ | |||
+ | 6. Качество прогнозирования на обучающем множестве и на контрольном множестве. Как они соотносятся друг с другом? Как они меняются, если мы изменяем сложность (гибкость) модели, и когда мы изменяем число объектов обучающей выборки? | ||
+ | |||
+ | 7. Что такое кросс-валидация? Как оценивать точность моделей для временных рядов? | ||
+ | |||
+ | 8. Метод ближайших соседей для задачи регрессии и классификации. Его обобщение через взвешенный учет объектов. | ||
+ | |||
+ | 9. Почему прогнозы методом ближайших соседей зависят от масштабирования признаков? Привести пример. Способ стандартизации признаков. | ||
+ | |||
+ | 10. Как преобразовывать категориальные признаки? - рассказать про one-hot кодирование. | ||
+ | |||
+ | [[Media:Kitov-ML-REU-01-Introduction.pdf | Презентация 1 для подготовки]] | ||
+ | |||
+ | [[Media:Kitov-ML-REU-02-K-NN.pdf | Презентация 2 для подготовки]] | ||
==Задания== | ==Задания== | ||
- | + | ===N1 - Проверка работы метода K-NN=== | |
- | + | ====Срок: до 14 февраля.==== | |
- | + | [[Media:Check_KNN.zip|скачать задание]] | |
- | + | ===N2 - Применение метода K-NN для распознавания цифр=== | |
- | + | ====Срок: до 14 февраля.==== | |
- | == | + | [[Media:digits_KNN.zip|скачать задание]] |
+ | |||
+ | ===N3 - Поиск наилучшей модели для оценки съедобности грибов=== | ||
+ | |||
+ | ====Срок: до 23:59 24 апреля.==== | ||
+ | |||
+ | [[Media:REU_ML-Mushrooms.zip|скачать задание и данные]] | ||
+ | |||
+ | Необходимо: разработать модель, дающую 100% точность на кросс-валидации и отослать мне ipynb файл кода и файл прогнозов для тестового множества в формате - как указано в файле. | ||
+ | |||
+ | Помощь по заданию: | ||
+ | |||
+ | [[Media:Adult_dataset.zip | Пример преобразования признаков и подбора параметров модели для другого датасета]]. | ||
+ | |||
+ | Для работы демонстрационного примера и выполнения задания понадобятся [https://github.com/Apogentus/common/tree/master/common полезные модули отсюда]. Главным образом - модуль feature transformations.py, содержащий one-hot и вероятностное кодирование признаков. | ||
+ | |||
+ | ===N4 - Предсказание, откликнется ли клиент на новую услугу банка=== | ||
+ | |||
+ | ====Срок: до 23:59 24 апреля.==== | ||
+ | Вам необходимо добиться максимально возможной точности по кросс валидации. Вам нужно подобрать параметр K и метрику для метода ближайших соседей, минимальное число объектов в листе и impurity function для дерева решений и параметр регуляризации C (рекомендуется перебирать C=10**-5,10**-4,...10**5), а также тип регуряризации (L1/L2) для логистической регресии. После чего результаты оформить в виде таблицы - для какого метода какие параметры по какой сетке значений перебирались, какие значения параметров оказались наилучшими и какой метод в целом оказался самым лучшим. Мне нужно прислать только ipynb файл c таблицей результатов и кодом. Естественно, все дискретные признаки вначале необходимо заменить их one-hot-encoding преобразованиями и проверить - добавление дискретных признаков улучшает точность или нет. | ||
+ | |||
+ | [[Media:Bank_offering_dataset.zip|скачать задание и данные]] | ||
+ | |||
+ | Помощь по заданию: | ||
+ | |||
+ | [[Media:Adult_dataset.zip | Пример преобразования признаков и подбора параметров модели для другого датасета]]. | ||
+ | |||
+ | Для работы демонстрационного примера и выполнения задания понадобятся [https://github.com/Apogentus/common/tree/master/common полезные модули отсюда]. Главным образом - модуль feature transformations.py, содержащий one-hot и вероятностное кодирование признаков. | ||
+ | |||
+ | |||
+ | |||
+ | ==Пройденные теоретические темы== | ||
+ | |||
+ | * Задачи машинного обучение: обучение с учителем и без учителя, регрессия, классификация, кластеризация. | ||
+ | * Метод ближайших соседей. Алгоритм метода для регрессии и классификации. | ||
+ | * Обобщение метода ближайших соседей через веса. | ||
+ | * Метод решающих деревьев для классификации и регрессии. | ||
+ | * Упрощение решающих деревьев. Pruning. | ||
+ | * Работа с дискретными признаками: one-hot кодирование и вероятностное кодирование. | ||
+ | * Характер зависимости разных методов машинного обучения от масштабирования признаков. | ||
+ | * Методы линейной классификации. Настройка весов. | ||
+ | * Логистическая регрессия. Функция цены для логистической регрессии. | ||
+ | |||
+ | ==Пройденные практические темы== | ||
+ | |||
+ | * Язык программирования Python | ||
+ | * Математическая библиотека numpy | ||
+ | * Основы работы с библиотекой машинного обучения scikit-learn. | ||
+ | |||
+ | |||
+ | ==Презентации некоторых лекций== | ||
+ | |||
+ | [[Media:Kitov-ML-REU-01-Introduction.pdf | Введение]] | ||
+ | |||
+ | [[Media:Kitov-ML-REU-02-K-NN.pdf | Метод ближайших соседей]] | ||
+ | |||
+ | [[Media:Kitov-ML-REU-03-Decision trees.pdf | Метод решающих деревьев]] | ||
+ | |||
+ | [[Media:Kitov-ML-REU-04-Linear classification.pdf | Методы линейной классификации. Логистическая регрессия.]] | ||
+ | |||
+ | [[Media:Kitov-ML-REU-06-SVM.pdf | Метод опорных векторов]] | ||
+ | |||
+ | [[Media:Kitov-ML-REU-07-Kernel methods.pdf | Ядерное обобщение метода опорны векторов]] | ||
+ | |||
+ | == Материалы для самостоятельного изучения (необходимы для решения домашних работ) == | ||
+ | * [https://github.com/Apogentus/demonstrations Совсем короткие демонстрации Python, Numpy, методов визуализации и настройки прогнозирующих моделей.] | ||
* [http://nbviewer.ipython.org/gist/rpmuller/5920182 A Crash Course in Python for Scientists] | * [http://nbviewer.ipython.org/gist/rpmuller/5920182 A Crash Course in Python for Scientists] | ||
* [https://docs.scipy.org/doc/numpy-dev/user/quickstart.html Numpy] | * [https://docs.scipy.org/doc/numpy-dev/user/quickstart.html Numpy] | ||
Строка 26: | Строка 150: | ||
* [http://scikit-learn.org/stable/tutorial/basic/tutorial.html Scikit-learn] | * [http://scikit-learn.org/stable/tutorial/basic/tutorial.html Scikit-learn] | ||
- | == | + | == Интересно == |
- | == | + | [https://www.youtube.com/channel/UCeq6ZIlvC9SVsfhfKnSvM9w Разборы решений соревнований по анализу данных] |
+ | |||
+ | == Дополнительные материалы, если что-то непонятно == | ||
+ | * [https://yandexdataschool.ru/edu-process/courses/machine-learning Видеолекции К.В.Воронцова по машинному обучению] | ||
* [http://www.machinelearning.ru/wiki/index.php?title=Заглавная_страница machinelearning.ru] | * [http://www.machinelearning.ru/wiki/index.php?title=Заглавная_страница machinelearning.ru] | ||
- | |||
* Одна из классических и наиболее полных книг по машинному обучению. [http://web.stanford.edu/~hastie/local.ftp/Springer/ESLII_print10.pdf Elements of Statistical Learning (Trevor Hastie, Robert Tibshirani, Jerome Friedman)] | * Одна из классических и наиболее полных книг по машинному обучению. [http://web.stanford.edu/~hastie/local.ftp/Springer/ESLII_print10.pdf Elements of Statistical Learning (Trevor Hastie, Robert Tibshirani, Jerome Friedman)] | ||
Текущая версия
Краткое описание
Курс ведется для магистров РЭУ им.Г.В.Плеханова. В курсе рассматриваются основные задачи анализа данных и обучения по прецедентам. По изложению для каждой рассматриваемой задачи изучаются математические основы методов, лежащие в их основе предположения о данных, взаимосвязи методов между собой и особенности их практического применения. Большое внимание уделено освоению практических навыков анализа данных, отрабатываемых на семинарах, которое будет вестись с использованием языка python и соответствующих библиотек для научных вычислений. От студентов требуются знания линейной алгебры, математического анализа и теории вероятностей.
Объявление
На первой паре курса по анализу данных 23.05.2016 будет проведена первая часть экзамена. Экзамен будет устный. Каждому студенту будет задан 1 случайный вопрос из списка ниже. Переговариваться и пользоваться никакими материалами нельзя.
30.05.2016 будет проведена вторая часть экзамена по тем же правилам.
Зачет по курсу будет выставляться в первую очередь - на основе выполнения домашних работ, во вторую - на основе сдачи экзаменов. При обнаружении плагиата в домашних работах баллы не будут зачитываться ни тому, кто списал, ни тому, у кого списали. Для выполнения домашних работ необходимо самостоятельно изучить ссылки раздела "Материалы для самостоятельного изучения" ниже.
Тем, кто не был на занятиях для подготовки к экзамену требуется ознакомиться со слайдами первых 2х лекций отсюда и видео-записями первых 2х лекций отсюда.
Вопросы к экзамену 30.05.2016
1. Структура решающего дерева, метод спуска по дереву в общем случае
2. Спецификация решающего дерева для метода CART
3. Выбор признака и порога для CART
4. Критерий остановки при построении дерева
5. Функция неопределенности (перемешанности) для задачи регрессии (выписать формулой явно ).
6. Функция неопределенности (перемешанности) для задачи классификации (выписать формулой явно).
7. Как назначаются прогнозы листьям дерева в случае задач регрессии и классификации.
8. Метод ближайших соседей для задачи регрессии и классификации. Его обобщение через взвешенный учет объектов (для повторения)
Презентация с материалами для подготовки
Прием экзамена начнется с опроса должников с прошлого раза: Олега Ширко, Вячеслава Домрачева и Никиты Кузнецова по неотвеченным билетам.
Для получения зачета необходимо сделать и прислать мне заранее (до воскресенья 16-00) хотя бы одну домашнюю работу. Кто сделает - можете брать зачетки.
Вопросы к экзамену 23.05.2016
1. Задачи машинного обучения - обучение с учителем, без учителя. Привести пример каждой задачи на практике.
2. Задачи регрессии и классификации. Задачи снижения размерности и кластеризации. Привести пример каждой задачи на практике.
3. Функции потерь (loss-функции) и функции выигрыша (score-функции). Привести примеры каждой функции.
4. Что такое класс функций, в котором ищется решение задачи обучения с учителем? Привести пример классов функций для задачи регрессии и классификации.
5. Как находятся оптимальные параметры прогнозирующей модели?
6. Качество прогнозирования на обучающем множестве и на контрольном множестве. Как они соотносятся друг с другом? Как они меняются, если мы изменяем сложность (гибкость) модели, и когда мы изменяем число объектов обучающей выборки?
7. Что такое кросс-валидация? Как оценивать точность моделей для временных рядов?
8. Метод ближайших соседей для задачи регрессии и классификации. Его обобщение через взвешенный учет объектов.
9. Почему прогнозы методом ближайших соседей зависят от масштабирования признаков? Привести пример. Способ стандартизации признаков.
10. Как преобразовывать категориальные признаки? - рассказать про one-hot кодирование.
Задания
N1 - Проверка работы метода K-NN
Срок: до 14 февраля.
N2 - Применение метода K-NN для распознавания цифр
Срок: до 14 февраля.
N3 - Поиск наилучшей модели для оценки съедобности грибов
Срок: до 23:59 24 апреля.
Необходимо: разработать модель, дающую 100% точность на кросс-валидации и отослать мне ipynb файл кода и файл прогнозов для тестового множества в формате - как указано в файле.
Помощь по заданию:
Пример преобразования признаков и подбора параметров модели для другого датасета.
Для работы демонстрационного примера и выполнения задания понадобятся полезные модули отсюда. Главным образом - модуль feature transformations.py, содержащий one-hot и вероятностное кодирование признаков.
N4 - Предсказание, откликнется ли клиент на новую услугу банка
Срок: до 23:59 24 апреля.
Вам необходимо добиться максимально возможной точности по кросс валидации. Вам нужно подобрать параметр K и метрику для метода ближайших соседей, минимальное число объектов в листе и impurity function для дерева решений и параметр регуляризации C (рекомендуется перебирать C=10**-5,10**-4,...10**5), а также тип регуряризации (L1/L2) для логистической регресии. После чего результаты оформить в виде таблицы - для какого метода какие параметры по какой сетке значений перебирались, какие значения параметров оказались наилучшими и какой метод в целом оказался самым лучшим. Мне нужно прислать только ipynb файл c таблицей результатов и кодом. Естественно, все дискретные признаки вначале необходимо заменить их one-hot-encoding преобразованиями и проверить - добавление дискретных признаков улучшает точность или нет.
Помощь по заданию:
Пример преобразования признаков и подбора параметров модели для другого датасета.
Для работы демонстрационного примера и выполнения задания понадобятся полезные модули отсюда. Главным образом - модуль feature transformations.py, содержащий one-hot и вероятностное кодирование признаков.
Пройденные теоретические темы
- Задачи машинного обучение: обучение с учителем и без учителя, регрессия, классификация, кластеризация.
- Метод ближайших соседей. Алгоритм метода для регрессии и классификации.
- Обобщение метода ближайших соседей через веса.
- Метод решающих деревьев для классификации и регрессии.
- Упрощение решающих деревьев. Pruning.
- Работа с дискретными признаками: one-hot кодирование и вероятностное кодирование.
- Характер зависимости разных методов машинного обучения от масштабирования признаков.
- Методы линейной классификации. Настройка весов.
- Логистическая регрессия. Функция цены для логистической регрессии.
Пройденные практические темы
- Язык программирования Python
- Математическая библиотека numpy
- Основы работы с библиотекой машинного обучения scikit-learn.
Презентации некоторых лекций
Методы линейной классификации. Логистическая регрессия.
Ядерное обобщение метода опорны векторов
Материалы для самостоятельного изучения (необходимы для решения домашних работ)
- Совсем короткие демонстрации Python, Numpy, методов визуализации и настройки прогнозирующих моделей.
- A Crash Course in Python for Scientists
- Numpy
- Matplotlib
- Scipy Lecture Notes
- Pandas
- Scikit-learn
Интересно
Разборы решений соревнований по анализу данных
Дополнительные материалы, если что-то непонятно
- Видеолекции К.В.Воронцова по машинному обучению
- machinelearning.ru
- Одна из классических и наиболее полных книг по машинному обучению. Elements of Statistical Learning (Trevor Hastie, Robert Tibshirani, Jerome Friedman)
Python
- Официальный сайт
- Библиотеки: NumPy, Pandas, SciKit-Learn, Matplotlib.
- Небольшой пример для начинающих: краткое руководство с примерами по Python 2