Машинное обучение (РЭУ)
Материал из MachineLearning.
(→Вопросы к экзамену 23.05.2016) |
(→Вопросы к экзамену 23.05.2016) |
||
Строка 24: | Строка 24: | ||
4. Что такое класс функций, в котором ищется решение задачи обучения с учителем? Привести пример классов функций для задачи регрессии и классификации. | 4. Что такое класс функций, в котором ищется решение задачи обучения с учителем? Привести пример классов функций для задачи регрессии и классификации. | ||
+ | |||
5. Как находятся оптимальные параметры прогнозирующей модели? | 5. Как находятся оптимальные параметры прогнозирующей модели? | ||
+ | |||
6. Качество прогнозирования на обучающем множестве и на контрольном множестве. Как они соотносятся друг с другом? Как они меняются, если мы изменяем сложность (гибкость) модели, и когда мы изменяем число объектов обучающей выборки? | 6. Качество прогнозирования на обучающем множестве и на контрольном множестве. Как они соотносятся друг с другом? Как они меняются, если мы изменяем сложность (гибкость) модели, и когда мы изменяем число объектов обучающей выборки? | ||
+ | |||
7. Что такое кросс-валидация? Как оценивать точность моделей для временных рядов? | 7. Что такое кросс-валидация? Как оценивать точность моделей для временных рядов? | ||
+ | |||
8. Метод ближайших соседей для задачи регрессии и классификации. Его обобщение через взвешенный учет объектов. | 8. Метод ближайших соседей для задачи регрессии и классификации. Его обобщение через взвешенный учет объектов. | ||
+ | |||
9. Почему прогнозы методом ближайших соседей зависят от масштабирования признаков? Привести пример. Способ стандартизации признаков. | 9. Почему прогнозы методом ближайших соседей зависят от масштабирования признаков? Привести пример. Способ стандартизации признаков. | ||
+ | |||
10. Как преобразовывать категориальные признаки? - рассказать про one-hot кодирование. | 10. Как преобразовывать категориальные признаки? - рассказать про one-hot кодирование. | ||
Версия 10:35, 17 мая 2016
Краткое описание
Курс ведется для магистров РЭУ им.Г.В.Плеханова. В курсе рассматриваются основные задачи анализа данных и обучения по прецедентам. По изложению для каждой рассматриваемой задачи изучаются математические основы методов, лежащие в их основе предположения о данных, взаимосвязи методов между собой и особенности их практического применения. Большое внимание уделено освоению практических навыков анализа данных, отрабатываемых на семинарах, которое будет вестись с использованием языка python и соответствующих библиотек для научных вычислений. От студентов требуются знания линейной алгебры, математического анализа и теории вероятностей.
Объявление
На первой паре курса по анализу данных 23.05.2016 будет проведена первая часть экзамена. Экзамен будет устный. Каждому студенту будет задан 1 случайный вопрос из списка ниже. Переговариваться и пользоваться никакими материалами нельзя.
30.05.2016 будет проведена вторая часть экзамена по тем же правилам.
Зачет по курсу будет выставляться в первую очередь - на основе выполнения домашних работ, во вторую - на основе сдачи экзаменов. При обнаружении плагиата в домашних работах баллы не будут зачитываться ни тому, кто списал, ни тому, у кого списали.
Тем, кто не был на занятиях для подготовки к экзамену требуется ознакомиться со слайдами первых 2х лекций отсюда и видео-записями первых 2х лекций отсюда.
Вопросы к экзамену 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 и вероятностное кодирование признаков.
N5 - На стадии формирования...
Пройденные теоретические темы
- Задачи машинного обучение: обучение с учителем и без учителя, регрессия, классификация, кластеризация.
- Метод ближайших соседей. Алгоритм метода для регрессии и классификации.
- Обобщение метода ближайших соседей через веса.
- Метод решающих деревьев для классификации и регрессии.
- Упрощение решающих деревьев. 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