Машинное обучение 1 — различия между версиями
Esokolov (обсуждение | вклад) (→Семинары) |
Esokolov (обсуждение | вклад) (→Соревнование 1: Определение категории товара) |
||
(не показано 28 промежуточных версии 9 участников) | |||
Строка 45: | Строка 45: | ||
! Группа !! Преподаватель !! Учебный ассистент | ! Группа !! Преподаватель !! Учебный ассистент | ||
|- | |- | ||
− | | 171 (МОП) || [https://www.hse.ru/org/persons/165212870 Зиннурова Эльвира Альбертовна] || Виктор Куканов | + | | 171 (МОП) || [https://www.hse.ru/org/persons/165212870 Зиннурова Эльвира Альбертовна] || [https://t.me/granilace Виктор Куканов] |
|- | |- | ||
− | | 172 (МОП) || [https://www.hse.ru/org/persons/209813459 Каюмов Эмиль Марселевич] || | + | | 172 (МОП) || [https://www.hse.ru/org/persons/209813459 Каюмов Эмиль Марселевич] || [https://t.me/svdcvt Соня Дымченко] |
|- | |- | ||
− | | 173 (ТИ) || [https://www.hse.ru/org/persons/? Хрушков Павел Вадимович] || Роман Соколов | + | | 173 (ТИ) || [https://www.hse.ru/org/persons/? Хрушков Павел Вадимович] || [https://t.me/resokolov Роман Соколов] |
|- | |- | ||
− | | 174 (АДИС) || [https://www.hse.ru/org/persons/? Кохтев Вадим Михайлович] || Евгений Алаев | + | | 174 (АДИС) || [https://www.hse.ru/org/persons/? Кохтев Вадим Михайлович] || [https://t.me/widepeepoBlanket Евгений Алаев] |
|- | |- | ||
| 175 (РС) || [https://www.hse.ru/org/persons/228364473 Волохова Александра Константиновна] || [https://t.me/President153 Ярослав Пудяков] | | 175 (РС) || [https://www.hse.ru/org/persons/228364473 Волохова Александра Константиновна] || [https://t.me/President153 Ярослав Пудяков] | ||
Строка 57: | Строка 57: | ||
| 176 (РС) || [https://www.hse.ru/org/persons/192085968 Яшков Даниил Дмитриевич] || [https://t.me/arcstranger Николай Пальчиков] | | 176 (РС) || [https://www.hse.ru/org/persons/192085968 Яшков Даниил Дмитриевич] || [https://t.me/arcstranger Николай Пальчиков] | ||
|- | |- | ||
− | | Магистратура ФТиАД || [https://www.hse.ru/org/persons/? Рысьмятова Анастасия Александровна] || Олег Дешеулин | + | | Магистратура ФТиАД || [https://www.hse.ru/org/persons/? Рысьмятова Анастасия Александровна] || [https://t.me/oleg_top Олег Дешеулин] |
|- | |- | ||
|} | |} | ||
Строка 98: | Строка 98: | ||
'''Лекция 1''' (6 сентября). Введение в машинное обучение. Основные термины, постановки задач и примеры применения. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-fall/lecture-notes/lecture01-intro.pdf Конспект]] | '''Лекция 1''' (6 сентября). Введение в машинное обучение. Основные термины, постановки задач и примеры применения. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-fall/lecture-notes/lecture01-intro.pdf Конспект]] | ||
+ | |||
+ | '''Лекция 2''' (13 сентября). Линейная регрессия. Метрики качества регрессии. Градиентный спуск и способы оценивания градиента. Продвинутые градиентные методы. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-fall/lecture-notes/lecture02-linregr.pdf Конспект]] | ||
+ | |||
+ | '''Лекция 3''' (20 сентября). Переобучение и регуляризация. Разреженные линейные модели. Квантильная регрессия. Подготовка признаков. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-fall/lecture-notes/lecture03-linregr.pdf Конспект]] | ||
+ | |||
+ | '''Лекция 4''' (27 сентября). Линейная классификация. Отступ и верхние оценки на пороговую функцию потерь. Метрики качества классификации. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-fall/lecture-notes/lecture04-linclass.pdf Конспект]] | ||
+ | |||
+ | '''Лекция 5''' (4 октября). Линейная классификация. Логистическая регрессия и оценки вероятности классов. Метод опорных векторов. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-fall/lecture-notes/lecture05-linclass.pdf Конспект]] | ||
+ | |||
+ | '''Лекция 6''' (11 октября). Многоклассовая классификация, сведение к бинарным задачам. Многоклассовая логистическая регрессия. Классификация с пересекающимися классами. Метрики качества многоклассовой классификации. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-fall/lecture-notes/lecture06-linclass.pdf Конспект]] | ||
+ | |||
+ | '''Лекция 7''' (18 октября). Решающие деревья. Жадный алгоритм построения. Выбор лучшего разбиения с помощью критерия информативности. Критерии информативности для регрессии и классификации. Учёт пропусков в деревьях. Решающие деревья и категориальные признаки. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-fall/lecture-notes/lecture07-trees.pdf Конспект]] | ||
+ | |||
+ | '''Лекция 8''' (1 ноября). Бутстрап и бэггинг. Разложение ошибки на смещение и разброс (bias-variance decomposition). Случайный лес. Вычисление расстояний с помощью лесов. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-fall/lecture-notes/lecture08-ensembles.pdf Конспект]] | ||
+ | |||
+ | '''Лекция 9''' (8 ноября). Градиентный бустинг. Регуляризация. Особенности бустинга над деревьями. Взвешивание объектов в градиентном бустинге. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-fall/lecture-notes/lecture09-ensembles.pdf Конспект]] | ||
== Семинары == | == Семинары == | ||
'''Семинар 1.''' Области применения машинного обучения. Инструменты data scientist'а. Pandas и разведочный анализ данных. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-fall/seminars/sem01-intro.ipynb Ноутбук]] | '''Семинар 1.''' Области применения машинного обучения. Инструменты data scientist'а. Pandas и разведочный анализ данных. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-fall/seminars/sem01-intro.ipynb Ноутбук]] | ||
+ | |||
+ | '''Семинар 2.''' Линейная регрессия. Библиотека scikit-learn. Валидация моделей. Работа с категориальными признаками. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-fall/seminars/sem02-sklearn-linreg.ipynb Ноутбук]] | ||
+ | |||
+ | '''Семинар 3.''' Градиент и его свойства. Векторное дифференцирование. Градиентый спуск, его модификации, практические аспекты. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-fall/seminars/sem03-linregr-part1.pdf Конспект]] [[https://github.com/esokolov/ml-course-hse/blob/master/2019-fall/seminars/sem03-linregr-part2.ipynb Ноутбук]] | ||
+ | |||
+ | '''Семинар 4.''' Предобработка данных. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-fall/seminars/sem04-features.pdf Конспект]] [[https://nbviewer.jupyter.org/github/esokolov/ml-course-hse/blob/master/2019-fall/seminars/sem04-features.ipynb Ноутбук]] | ||
+ | |||
+ | '''Семинар 5.''' Метрики качества классификации. AUC-ROC и его прямая оптимизация. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-fall/seminars/sem05-linclass-metrics.pdf Конспект]] | ||
+ | |||
+ | '''Семинар 6.''' Оценивание вероятностей классов. Квантильная регрессия [[https://github.com/esokolov/ml-course-hse/blob/master/2019-fall/seminars/sem06-probs-quantile.pdf Конспект]] | ||
+ | |||
+ | '''Семинар 7.''' Решающие деревья. Критерии информативности. Гиперпараметры в деревьях. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-fall/seminars/sem07-trees.pdf Конспект]] [[https://github.com/esokolov/ml-course-hse/blob/master/2019-fall/seminars/sem07-trees.ipynb Ноутбук]] | ||
+ | |||
+ | '''Семинар 8.''' Разложение ошибки на смещение и разброс. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-fall/seminars/sem08-bvd.pdf Конспект]] | ||
+ | |||
+ | '''Семинар 9.''' Градиентный бустинг. Вывод формул для сдвигов. Сравнение со случайным лесом. Деревья и экстраполяция данных. [[https://github.com/esokolov/ml-course-hse/blob/master/2019-fall/seminars/sem09-gbm-part1.pdf Конспект]] [[https://github.com/esokolov/ml-course-hse/blob/master/2019-fall/seminars/sem09-gbm-part2.ipynb Ноутбук]] | ||
== Практические задания == | == Практические задания == | ||
Строка 109: | Строка 141: | ||
'''Задание 1.''' Работа с Pandas и Matplotlib. | '''Задание 1.''' Работа с Pandas и Matplotlib. | ||
− | Мягкий дедлайн: | + | Мягкий дедлайн: 15.09.2019 23:59. |
− | Жесткий дедлайн: | + | Жесткий дедлайн: 17.09.2019 23:59. |
[[https://github.com/esokolov/ml-course-hse/blob/master/2019-fall/homeworks-practice/homework-practice-01.ipynb Ноутбук с заданием]] | [[https://github.com/esokolov/ml-course-hse/blob/master/2019-fall/homeworks-practice/homework-practice-01.ipynb Ноутбук с заданием]] | ||
+ | |||
+ | '''Задание 2.''' Exploratory Data Analysis и линейная регрессия. | ||
+ | |||
+ | Мягкий дедлайн: 01.10.2019 23:59. | ||
+ | |||
+ | Жесткий дедлайн: 04.10.2019 23:59 (за каждый день просрочки снимается 2 балла). | ||
+ | |||
+ | [[https://github.com/esokolov/ml-course-hse/blob/master/2019-fall/homeworks-practice/homework-practice-02.ipynb Ноутбук с заданием]] | ||
+ | |||
+ | '''Задание 3.''' Градиентный спуск своими руками. | ||
+ | |||
+ | Мягкий дедлайн: 15.10.2019 07:59. | ||
+ | |||
+ | Жесткий дедлайн: 17.10.2019 23:59. | ||
+ | |||
+ | '''Задание 4.''' Метод опорных векторов, категориальные признаки, калибровка предсказаний и отбор признаков. | ||
+ | |||
+ | Мягкий дедлайн: 11.11.2019 07:59. | ||
+ | |||
+ | Жесткий дедлайн: 13.11.2019 23:59. | ||
+ | |||
+ | [[https://nbviewer.jupyter.org/github/esokolov/ml-course-hse/blob/master/2019-fall/homeworks-practice/homework-practice-04.ipynb Ноутбук с заданием]] | ||
==Теоретические домашние задания== | ==Теоретические домашние задания== | ||
Теоретические ДЗ не проверяются, но задачи из них могут войти в проверочные работы на семинарах. | Теоретические ДЗ не проверяются, но задачи из них могут войти в проверочные работы на семинарах. | ||
+ | |||
+ | '''Теоретическое домашнее задание 1''': линейная регрессия и векторное дифференцирование [[https://github.com/esokolov/ml-course-hse/blob/master/2019-fall/homeworks-theory/homework-theory-01-linregr.pdf ссылка]] | ||
+ | |||
+ | '''Теоретическое домашнее задание 2''': линейная классификация [[https://github.com/esokolov/ml-course-hse/blob/master/2019-fall/homeworks-theory/homework-theory-02-linclass.pdf ссылка]] | ||
+ | |||
+ | '''Теоретическое домашнее задание 3''': решающие деревья [[https://github.com/esokolov/ml-course-hse/blob/master/2019-fall/homeworks-theory/homework-theory-03-trees.pdf ссылка]] | ||
+ | |||
+ | '''Теоретическое домашнее задание 4''': разложение ошибки на смещение и разброс [[https://github.com/esokolov/ml-course-hse/blob/master/2019-fall/homeworks-theory/homework-theory-04-bvd.pdf ссылка]] | ||
+ | |||
+ | == Соревнования == | ||
+ | |||
+ | ===Правила участия и оценивания=== | ||
+ | В соревновании по анализу данных вам предлагается по имеющимся данным решить некоторую задачу, оптимизируя указанную метрику, и отправить ответы для заданного тестового множества. Максимальное количество посылок в сутки ограничено (как правило, разрешается сделать 2 посылки), ближе к концу соревнования вам будем необходимо выбрать 2 посылки, которые вы считаете лучшими. Тестовые данные делятся на публичные и приватные в некотором соотношении, на основе которых строятся публичный и приватный лидерборды соответственно, при этом публичный лидерборд доступен в течение всего соревнования, а приватный строится после его окончания для выбранных вами посылок. | ||
+ | |||
+ | В лидербордах каждого из соревнований присутствуют несколько базовых решений (бейзлайнов), каждое из которых соответствует определённой оценке. Например, для получения оценки не ниже 8 баллов необходимо, чтобы ваше решение на '''приватном''' лидерборде оказалось лучше соответствующего бейзлайна. Далее для студента, преодолевшего бейзлайн на N_1 баллов, но не преодолевшего бейзлайн на N_2 балла, итоговая оценка за соревнование рассчитывается по равномерной сетке среди всех таких студентов в зависимости от места в приватном лидерборде среди них; если быть точными, то по следующей формуле: | ||
+ | |||
+ | N_2 - (N_2 - N_1) * i / M, | ||
+ | |||
+ | где M — количество студентов (из всех студентов, изучающих курс), преодолевших бейзлайн на N_1 баллов, но не преодолевших бейзлайн на N_2 балла; | ||
+ | |||
+ | i — место (начиная с 1) студента в приватном лидерборде среди всех таких студентов. | ||
+ | |||
+ | Единственное исключение из формулы — студенты, преодолевшие самый сильный бейзлайн, получают прибавку 1/M к своей оценке. | ||
+ | |||
+ | Чтобы вас не пропустили при проверке решений соревнования, '''необходимо''' использовать следующий формат для имени команды (вкладка Team): | ||
+ | |||
+ | «Имя Фамилия номер_группы» | ||
+ | |||
+ | В течение 3 суток после окончания соревнования в соответствующее задание на anytask необходимо прислать код, воспроизводящий ответы для посылки, фигурирующей в приватном лидерборде. При оформлении кода предполагайте, что данные лежат рядом с ним в папке data, а в результате выполнения кода ответы должны быть записаны в файл solution-N-Username.csv, где N — номер соревнования, Username — ваша фамилия. У нас должна быть возможность запустить код и получить те же ответы, что и в вашей посылке, — в частности, это означает, что: | ||
+ | |||
+ | 1. Если вы отправляете файл *.py, мы будем запускать его при помощи команды python *.py в вышеуказанном предположении о местонахождении данных. | ||
+ | |||
+ | 2. Если вы отправляете ноутбук *.ipynb, мы последовательно запустим все ячейки ноутбука и будем ожидать в результате его работы формирование файла с ответами. | ||
+ | |||
+ | 3. Если вы отправляете код с использованием другого языка программирования, в том же письме направьте нам инструкцию по его запуску с тем, чтобы получить тот же файл с ответами. | ||
+ | |||
+ | В случае отсутствия кода, воспроизводящего результат, в установленный срок студенту выставляется 0 в качестве оценки за соревнование. Студенты, попавшие в топ-5 согласно приватному лидерборду, смогут получить бонусные баллы, если в течение недели после окончания соревнования пришлют на почту курса отчет о получении решения, фигурирующего в приватном лидерборде. Если не оговорено иное, использовать любые внешние данные в соревнованиях '''запрещено'''. | ||
+ | |||
+ | === Соревнование 1: Определение категории товара === | ||
+ | |||
+ | '''Соревнование на бонусные баллы, не входит в основную формулу оценки''' | ||
+ | |||
+ | Дата выдачи: 9.11.2019 | ||
+ | |||
+ | Срок окончания соревнования: 11.12.2019 23:59MSK | ||
+ | |||
+ | Срок отправки кода: 14.12.2019 23:59MSK | ||
+ | |||
+ | Бейзлайн на 4 балла | ||
+ | |||
+ | [https://www.kaggle.com/t/78b4150e88c84935b37e550fbb636a4f Ссылка на участие в соревновании] | ||
== Бонусы за соревнования == | == Бонусы за соревнования == | ||
Строка 124: | Строка 229: | ||
== Контрольная работа == | == Контрольная работа == | ||
+ | |||
+ | Контрольная работа состоится на лекции 6 декабря (предварительно). | ||
+ | |||
+ | В варианте будут два теоретических вопроса и две задачи (возможно, будут также дополнительные задачи на бонусные баллы, для получения максимальной оценки за контрольную их решать не потребуется). Теоретические вопросы будут затрагивать материалы всех лекций и семинаров по темам до градиентного бустинга включительно. Основные задачи будут затрагивать все темы, которые затрагивались в теоретических домашних заданиях (линейные модели, деревья, разложение ошибки на смещение и разброс). | ||
+ | |||
+ | [https://docs.google.com/document/d/1xSaTtFqXkj1hG0Da7lX8GkGn7kaqAxWGYflLLvKf5z0/edit?usp=sharing Вопросы для подготовки] | ||
== Экзамен == | == Экзамен == |
Версия 17:11, 9 ноября 2019
Содержание
О курсе
Курс читается для студентов 3-го курса ПМИ ФКН ВШЭ в 1-2 модулях.
Проводится с 2016 года.
Лектор: Соколов Евгений Андреевич
Лекции проходят по пятницам, 12:10 - 13:30, ауд. R404 (Покровский бульвар, 11).
Полезные ссылки
Репозиторий с материалами на GitHub
Почта для сдачи домашних заданий (на самом деле задания сдаются в AnyTask, но если он не работает, то присылайте на почту): hse.cs.ml+<номер группы>@gmail.com (например, hse.cs.ml+171@gmail.com)
Канал в telegram для объявлений: https://t.me/joinchat/AAAAAEtiwm9A8i-78LNcKQ
Чат в telegram для обсуждений (предназначение чата до конца не ясно, вопросы может быть правильнее задавать в чатах групп): https://t.me/joinchat/A5rlQBUrWTeXl7eBbnyBcQ
Ссылка на курс в Anytask: https://anytask.org/course/537
Оставить отзыв на курс: форма
Вопросы по курсу можно задавать на почту курса, а также в телеграм лектору (esokolov@) или семинаристу. Вопросы по материалам лекций/семинаров и по заданиям лучше всего оформлять в виде Issue в github-репозитории курса.
Семинары
Группа | Преподаватель | Учебный ассистент |
---|---|---|
171 (МОП) | Зиннурова Эльвира Альбертовна | Виктор Куканов |
172 (МОП) | Каюмов Эмиль Марселевич | Соня Дымченко |
173 (ТИ) | Хрушков Павел Вадимович | Роман Соколов |
174 (АДИС) | Кохтев Вадим Михайлович | Евгений Алаев |
175 (РС) | Волохова Александра Константиновна | Ярослав Пудяков |
176 (РС) | Яшков Даниил Дмитриевич | Николай Пальчиков |
Магистратура ФТиАД | Рысьмятова Анастасия Александровна | Олег Дешеулин |
Консультации
Правила выставления оценок
В курсе предусмотрено несколько форм контроля знания:
- Самостоятельные работы на семинарах, проверяющие знание основных фактов с лекций
- Практические домашние работы на Python
- Письменная контрольная работа
- Письменный экзамен
Итоговая оценка вычисляется на основе оценки за работу в семестре и оценки за экзамен:
Итог = Округление(0.15 * ПР + 0.4 * ДЗ + 0.15 * КР + 0.3 * Э)
ПР — средняя оценка за самостоятельные работы на семинарах
ДЗ — средняя оценка за практические домашние работы на Python
КР — оценка за контрольную работу
Э — оценка за экзамен
Округление арифметическое.
Правила сдачи заданий
За каждый день просрочки после мягкого дедлайна снимается 1 балл. После жёсткого дедлайна работы не принимаются. Даже при опоздании на одну секунду. Сдавайте заранее.
При обнаружении плагиата оценки за домашнее задание обнуляются всем задействованным в списывании студентам, а также подаётся докладная записка в деканат. Следует помнить, что при повторном списывании деканат имеет право отчислить студента.
При наличии уважительной причины пропущенную проверочную можно написать позднее, а дедлайн по домашнему заданию может быть перенесён. Дедлайн по домашнему заданию переносится на количество дней, равное продолжительности уважительной причины. Решение о том, является ли причина уважительной, принимает исключительно учебный офис.
Лекции
Ко всем конспектам на GitHub есть исходники. Исправления и дополнения всячески приветствуются!
Лекция 1 (6 сентября). Введение в машинное обучение. Основные термины, постановки задач и примеры применения. [Конспект]
Лекция 2 (13 сентября). Линейная регрессия. Метрики качества регрессии. Градиентный спуск и способы оценивания градиента. Продвинутые градиентные методы. [Конспект]
Лекция 3 (20 сентября). Переобучение и регуляризация. Разреженные линейные модели. Квантильная регрессия. Подготовка признаков. [Конспект]
Лекция 4 (27 сентября). Линейная классификация. Отступ и верхние оценки на пороговую функцию потерь. Метрики качества классификации. [Конспект]
Лекция 5 (4 октября). Линейная классификация. Логистическая регрессия и оценки вероятности классов. Метод опорных векторов. [Конспект]
Лекция 6 (11 октября). Многоклассовая классификация, сведение к бинарным задачам. Многоклассовая логистическая регрессия. Классификация с пересекающимися классами. Метрики качества многоклассовой классификации. [Конспект]
Лекция 7 (18 октября). Решающие деревья. Жадный алгоритм построения. Выбор лучшего разбиения с помощью критерия информативности. Критерии информативности для регрессии и классификации. Учёт пропусков в деревьях. Решающие деревья и категориальные признаки. [Конспект]
Лекция 8 (1 ноября). Бутстрап и бэггинг. Разложение ошибки на смещение и разброс (bias-variance decomposition). Случайный лес. Вычисление расстояний с помощью лесов. [Конспект]
Лекция 9 (8 ноября). Градиентный бустинг. Регуляризация. Особенности бустинга над деревьями. Взвешивание объектов в градиентном бустинге. [Конспект]
Семинары
Семинар 1. Области применения машинного обучения. Инструменты data scientist'а. Pandas и разведочный анализ данных. [Ноутбук]
Семинар 2. Линейная регрессия. Библиотека scikit-learn. Валидация моделей. Работа с категориальными признаками. [Ноутбук]
Семинар 3. Градиент и его свойства. Векторное дифференцирование. Градиентый спуск, его модификации, практические аспекты. [Конспект] [Ноутбук]
Семинар 4. Предобработка данных. [Конспект] [Ноутбук]
Семинар 5. Метрики качества классификации. AUC-ROC и его прямая оптимизация. [Конспект]
Семинар 6. Оценивание вероятностей классов. Квантильная регрессия [Конспект]
Семинар 7. Решающие деревья. Критерии информативности. Гиперпараметры в деревьях. [Конспект] [Ноутбук]
Семинар 8. Разложение ошибки на смещение и разброс. [Конспект]
Семинар 9. Градиентный бустинг. Вывод формул для сдвигов. Сравнение со случайным лесом. Деревья и экстраполяция данных. [Конспект] [Ноутбук]
Практические задания
За каждый день просрочки после мягкого дедлайна снимается 1 балл. После жёсткого дедлайна работы не принимаются. В течение семестра каждый студент может не более 2 раз сдать задание после жёсткого дедлайна.
Задание 1. Работа с Pandas и Matplotlib.
Мягкий дедлайн: 15.09.2019 23:59.
Жесткий дедлайн: 17.09.2019 23:59.
Задание 2. Exploratory Data Analysis и линейная регрессия.
Мягкий дедлайн: 01.10.2019 23:59.
Жесткий дедлайн: 04.10.2019 23:59 (за каждый день просрочки снимается 2 балла).
Задание 3. Градиентный спуск своими руками.
Мягкий дедлайн: 15.10.2019 07:59.
Жесткий дедлайн: 17.10.2019 23:59.
Задание 4. Метод опорных векторов, категориальные признаки, калибровка предсказаний и отбор признаков.
Мягкий дедлайн: 11.11.2019 07:59.
Жесткий дедлайн: 13.11.2019 23:59.
Теоретические домашние задания
Теоретические ДЗ не проверяются, но задачи из них могут войти в проверочные работы на семинарах.
Теоретическое домашнее задание 1: линейная регрессия и векторное дифференцирование [ссылка]
Теоретическое домашнее задание 2: линейная классификация [ссылка]
Теоретическое домашнее задание 3: решающие деревья [ссылка]
Теоретическое домашнее задание 4: разложение ошибки на смещение и разброс [ссылка]
Соревнования
Правила участия и оценивания
В соревновании по анализу данных вам предлагается по имеющимся данным решить некоторую задачу, оптимизируя указанную метрику, и отправить ответы для заданного тестового множества. Максимальное количество посылок в сутки ограничено (как правило, разрешается сделать 2 посылки), ближе к концу соревнования вам будем необходимо выбрать 2 посылки, которые вы считаете лучшими. Тестовые данные делятся на публичные и приватные в некотором соотношении, на основе которых строятся публичный и приватный лидерборды соответственно, при этом публичный лидерборд доступен в течение всего соревнования, а приватный строится после его окончания для выбранных вами посылок.
В лидербордах каждого из соревнований присутствуют несколько базовых решений (бейзлайнов), каждое из которых соответствует определённой оценке. Например, для получения оценки не ниже 8 баллов необходимо, чтобы ваше решение на приватном лидерборде оказалось лучше соответствующего бейзлайна. Далее для студента, преодолевшего бейзлайн на N_1 баллов, но не преодолевшего бейзлайн на N_2 балла, итоговая оценка за соревнование рассчитывается по равномерной сетке среди всех таких студентов в зависимости от места в приватном лидерборде среди них; если быть точными, то по следующей формуле:
N_2 - (N_2 - N_1) * i / M,
где M — количество студентов (из всех студентов, изучающих курс), преодолевших бейзлайн на N_1 баллов, но не преодолевших бейзлайн на N_2 балла;
i — место (начиная с 1) студента в приватном лидерборде среди всех таких студентов.
Единственное исключение из формулы — студенты, преодолевшие самый сильный бейзлайн, получают прибавку 1/M к своей оценке.
Чтобы вас не пропустили при проверке решений соревнования, необходимо использовать следующий формат для имени команды (вкладка Team):
«Имя Фамилия номер_группы»
В течение 3 суток после окончания соревнования в соответствующее задание на anytask необходимо прислать код, воспроизводящий ответы для посылки, фигурирующей в приватном лидерборде. При оформлении кода предполагайте, что данные лежат рядом с ним в папке data, а в результате выполнения кода ответы должны быть записаны в файл solution-N-Username.csv, где N — номер соревнования, Username — ваша фамилия. У нас должна быть возможность запустить код и получить те же ответы, что и в вашей посылке, — в частности, это означает, что:
1. Если вы отправляете файл *.py, мы будем запускать его при помощи команды python *.py в вышеуказанном предположении о местонахождении данных.
2. Если вы отправляете ноутбук *.ipynb, мы последовательно запустим все ячейки ноутбука и будем ожидать в результате его работы формирование файла с ответами.
3. Если вы отправляете код с использованием другого языка программирования, в том же письме направьте нам инструкцию по его запуску с тем, чтобы получить тот же файл с ответами.
В случае отсутствия кода, воспроизводящего результат, в установленный срок студенту выставляется 0 в качестве оценки за соревнование. Студенты, попавшие в топ-5 согласно приватному лидерборду, смогут получить бонусные баллы, если в течение недели после окончания соревнования пришлют на почту курса отчет о получении решения, фигурирующего в приватном лидерборде. Если не оговорено иное, использовать любые внешние данные в соревнованиях запрещено.
Соревнование 1: Определение категории товара
Соревнование на бонусные баллы, не входит в основную формулу оценки
Дата выдачи: 9.11.2019
Срок окончания соревнования: 11.12.2019 23:59MSK
Срок отправки кода: 14.12.2019 23:59MSK
Бейзлайн на 4 балла
Ссылка на участие в соревновании
Бонусы за соревнования
За успешное участие в соревнованиях по анализу данных могут быть выставлены бонусные баллы, которые можно прибавить к оценке за любое практическое или теоретическое домашнее задание, а также за самостоятельную работу. Под успешным участием понимается попадание в топ-10% мест; если соревнование особо сложное и крупное, может рассматриваться и попадание в топ-20% мест. Конкретное число баллов определяется преподавателями и зависит от сложности соревнования и занятого места. За одно соревнование можно получить не более 5 баллов. Для получения оценки необходимо предоставить краткий отчёт о решении задачи.
Контрольная работа
Контрольная работа состоится на лекции 6 декабря (предварительно).
В варианте будут два теоретических вопроса и две задачи (возможно, будут также дополнительные задачи на бонусные баллы, для получения максимальной оценки за контрольную их решать не потребуется). Теоретические вопросы будут затрагивать материалы всех лекций и семинаров по темам до градиентного бустинга включительно. Основные задачи будут затрагивать все темы, которые затрагивались в теоретических домашних заданиях (линейные модели, деревья, разложение ошибки на смещение и разброс).
Экзамен
Полезные материалы
Книги
- Hastie T., Tibshirani R, Friedman J. The Elements of Statistical Learning (2nd edition). Springer, 2009.
- Bishop C. M. Pattern Recognition and Machine Learning. Springer, 2006.
- Mohri M., Rostamizadeh A., Talwalkar A. Foundations of Machine Learning. MIT Press, 2012.
- Murphy K. Machine Learning: A Probabilistic Perspective. MIT Press, 2012.
- Mohammed J. Zaki, Wagner Meira Jr. Data Mining and Analysis. Fundamental Concepts and Algorithms. Cambridge University Press, 2014.
- Willi Richert, Luis Pedro Coelho. Building Machine Learning Systems with Python. Packt Publishing, 2013.
Курсы по машинному обучению и анализу данных
- Курс по машинному обучению К.В. Воронцова
- Видеозаписи лекций курса Школы Анализа Данных, К.В. Воронцов
- Coursera: Машинное обучение и анализ данных (специализация)
- Coursera: Введение в машинное обучение, К.В. Воронцов