Машинное обучение 1 — различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск
(Лекции)
 
(не показано 187 промежуточных версии 29 участников)
Строка 9: Строка 9:
 
'''Лектор:''' [http://www.hse.ru/staff/esokolov Соколов Евгений Андреевич]
 
'''Лектор:''' [http://www.hse.ru/staff/esokolov Соколов Евгений Андреевич]
  
Лекции проходят по пятницам, 12:10 - 13:30, ауд. 317.
+
Лекции проходят по пятницам, 11:10 - 12:30, в zoom (https://zoom.us/j/98499384799?pwd=OC9GcFd5QlJkZlA5Uk85SHNVTGxSdz09).
  
  
Строка 18: Строка 18:
 
=== Полезные ссылки ===
 
=== Полезные ссылки ===
  
[https://www.hse.ru/ba/ami/courses/219888994.html Карточка курса и программа]
+
[https://www.hse.ru/ba/ami/courses/450802413.html Карточка курса и программа]
  
 
[https://github.com/esokolov/ml-course-hse Репозиторий с материалами на GitHub]
 
[https://github.com/esokolov/ml-course-hse Репозиторий с материалами на GitHub]
  
Почта для сдачи домашних заданий (на самом деле задания сдаются в AnyTask, но если он не работает, то присылайте на почту): hse.cs.ml+<номер группы>@gmail.com (например, hse.cs.ml+161@gmail.com)
+
[https://www.youtube.com/watch?v=OBG6EUSRC9g&list=PLEqoHzpnmTfDwuwrFHWVHdr1-qJsfqCUX Видеозаписи лекций 18/19 года]
  
Канал в telegram для объявлений: https://t.me/joinchat/AAAAAEprV-8gsyFBkYbvkg
+
Почта для сдачи домашних заданий (на самом деле задания сдаются в AnyTask, но если он не работает, то присылайте на почту): hse.cs.ml+<номер группы>@gmail.com (например, hse.cs.ml+171@gmail.com)
  
Чат в telegram для обсуждений: https://t.me/joinchat/A5rlQE2eFY0LN0AWcGH3qA
+
Канал в telegram для объявлений: https://t.me/joinchat/G2T6pB1CgF82NTMy
  
Ссылка на курс в Anytask: https://anytask.org/course/390
+
Чат в telegram для обсуждений (предназначение чата до конца не ясно, вопросы может быть правильнее задавать в чатах групп): https://t.me/joinchat/NRpKJ09prtRlMTli
  
[https://docs.google.com/spreadsheets/d/1u832G7b9aRyayoncaKXr7XPD6WisDr85AYRBKSVCMq0/edit?usp=sharing Таблица с оценками]
+
Ссылка на курс в Anytask: https://anytask.org/course/856
 +
 
 +
[https://docs.google.com/spreadsheets/d/1_qMPqgcJZEJaiXZpMbjKM0trw_aGkkulrZG7Lq7kjU8/edit?usp=sharing Таблица с оценками]
  
 
Оставить отзыв на курс: [https://goo.gl/forms/5CddG0gc75VZvqi52 форма]
 
Оставить отзыв на курс: [https://goo.gl/forms/5CddG0gc75VZvqi52 форма]
  
'''Вопросы''' по курсу можно задавать на почту курса, а также в телеграм лектору (esokolov@) или семинаристу.
+
'''Вопросы''' по курсу можно задавать в телеграм лектору (esokolov@) или семинаристу.
Вопросы по материалам лекций/семинаров и по заданиям лучше всего оформлять в виде [https://github.com/esokolov/ml-course-hse/issues Issue] в [https://github.com/esokolov/ml-course-hse github-репозитории курса].
+
Вопросы по материалам лекций/семинаров и по заданиям лучше всего задавать на [https://github.com/esokolov/ml-course-hse/discussions форуме].
  
 
=== Семинары ===
 
=== Семинары ===
Строка 41: Строка 43:
 
{| class="wikitable"
 
{| class="wikitable"
 
|-
 
|-
! Группа !! Преподаватель !! Учебный ассистент !! Страница !! Расписание
+
! Группа !! Преподаватель
 
|-
 
|-
| 161 (МОП) || [https://www.hse.ru/org/persons/165212870 Зиннурова Эльвира Альбертовна] || [https://t.me/mryab Рябинин Максим] || || пятница, 10:30 - 11:50, ауд. 503
+
| 191 (МОП) || Хрушков Павел Вадимович
 
|-
 
|-
| 162 (МОП) || [https://www.hse.ru/org/persons/191263008 Неклюдов Кирилл Олегович] || [http://t.me/bazpasha Хрушков Павел] || ||
+
| 192 (МОП) || [https://www.hse.ru/staff/esokolov Соколов Евгений Андреевич]
 
|-
 
|-
| 163 (АДИС) || [https://t.me/despairazure Кохтев Вадим Михайлович] || [http://t.me/marka_17 Маркович Александр] || || пятница, 10:30 - 11:50, ауд. 400
+
| 193 (МОП) || [https://www.hse.ru/org/persons/208522505 Садртдинов Ильдус Рустемович]
 
|-
 
|-
| 164 (АДИС) || [https://www.hse.ru/org/persons/137283751 Атанов Андрей Игоревич] || [http://t.me/liza_s Свитанько Лиза] || ||
+
| 194 (АДИС)|| [https://www.hse.ru/staff/atsvigun Цвигун Аким Олегович]
 
|-
 
|-
| 165 (РС) || [https://www.hse.ru/org/persons/209813459 Каюмов Эмиль Марселевич] || [http://t.me/akiiino Попов Никита] ||  || вторник, 9:00 – 10:20, ауд. 311
+
| 195 (РС) || Каюмов Эмиль Марселевич
 
|-
 
|-
| 166 (РС) || [https://www.hse.ru/org/persons/192085968 Яшков Даниил Дмитриевич] || [http://t.me/Saigetsu Хайдуров Руслан] || ||
+
| 196 (РС) || Шабалин Александр Михайлович
 
|-
 
|-
| Магистратура ФТиАД || [https://www.hse.ru/org/persons/191576735 Чиркова Надежда Александровна] || [https://t.me/nbagiyan Багиян Нерсес] ||  ||
+
| 197 (АПР) || [https://www.hse.ru/org/persons/160961881 Глазкова Екатерина Васильевна]
 
|-
 
|-
 +
| 198 (ТИ) || [https://www.hse.ru/org/persons/218009880 Ульянкин Филипп] [https://t.me/ppilif @ppilif]
 +
|-
 +
| 199 (МИ) || [https://www.hse.ru/org/persons/160995848/ Семенкин Антон Александрович]
 +
|-
 +
| 1910 (ПР) || [https://www.hse.ru/org/persons/208488544 Биршерт Алексей Дмитриевич]
 +
|-
 +
| ФЭН || [https://www.hse.ru/org/persons/190889495 Зехов Матвей Сергеевич]
 +
|-
 +
| Пермь (БИ) || [https://www.hse.ru/org/persons/343120018 Собянин Кирилл Валентинович]
 +
|-
 +
| Пермь (ПИ) || [https://www.hse.ru/org/persons/343120018 Собянин Кирилл Валентинович]
 
|}
 
|}
  
 
=== Консультации ===
 
=== Консультации ===
 +
 +
{| class="wikitable"
 +
|-
 +
! Учебные ассистенты
 +
|-
 +
| [https://t.me/treacker Евгений Шабалин - 191]
 +
|-
 +
| [https://t.me/madn_boi Никита Морозов - 192]
 +
|-
 +
| [https://t.me/artiloid Щербинин Артём - 193]
 +
|-
 +
| [https://t.me/sibsonya Сибагатова Софья - 193]
 +
|-
 +
| [https://t.me/khaykingleb Хайкин Глеб - 194]
 +
|-
 +
| [https://t.me/sol_arch Никита Андреев - 195]
 +
|-
 +
| [https://t.me/sabinadayanova Сабина Даянова - 195]
 +
|-
 +
| [https://t.me/ainmukh Айнур Мухамбетова - 196]
 +
|-
 +
| [https://t.me/daviddramb Драмбян Давид - 198] 
 +
|-
 +
| [https://t.me/fdrose Абрахам Максим - 199] 
 +
|-
 +
| [https://t.me/naumovanast Наумова Настя - 1910]
 +
|-
 +
| [https://t.me/horror_in_black Коган Саша - 197]
 +
|-
 +
| [https://t.me/cherepasska Баранов Михаил - ФЭН]
 +
|-
 +
| [https://t.me/lena_rus_21 Русакова Елена]
 +
|}
  
 
=== Правила выставления оценок ===
 
=== Правила выставления оценок ===
  
 
В курсе предусмотрено несколько форм контроля знания:
 
В курсе предусмотрено несколько форм контроля знания:
* Самостоятельные работы на семинарах, проверяющие знание основных фактов с лекций
+
* Самостоятельные работы на семинарах, проверяющие знание основных фактов с лекций и семинаров
 
* Практические домашние работы на Python
 
* Практические домашние работы на Python
* Контрольная работа
+
* Письменная контрольная работа
 
* Письменный экзамен
 
* Письменный экзамен
  
 
Итоговая оценка вычисляется на основе оценки за работу в семестре и оценки за экзамен:
 
Итоговая оценка вычисляется на основе оценки за работу в семестре и оценки за экзамен:
  
O<sub>итоговая</sub> = 0.7 * O<sub>накопленная</sub> + 0.3 * О<sub>экз</sub>
+
Итог = Округление(0.15 * ПР + 0.4 * ДЗ + 0.15 * КР + 0.3 * Э)
  
Оценка за работу в семестре вычисляется по формуле
+
ПР — средняя оценка за самостоятельные работы на семинарах
  
O<sub>накопленная</sub> = 0.2 * O<sub>самостоятельные</sub> + 0.6 * О<sub>практические дз</sub> + 0.2 * О<sub>контрольная</sub>
+
ДЗ — средняя оценка за практические домашние работы на Python
  
Оценка за самостоятельную работу вычисляется как среднее по всем самостоятельным, оценка за домашнюю работу — как среднее по всем практическим заданиям и соревнованиям.
+
КР — оценка за контрольную работу
  
Накопленная, экзаменационная и итоговая оценки округляются арифметически.
+
Э — оценка за экзамен
 +
 
 +
Округление арифметическое.
  
 
=== Правила сдачи заданий ===
 
=== Правила сдачи заданий ===
  
За каждый день просрочки после мягкого дедлайна снимается 1 балл. После жёсткого дедлайна работы не принимаются.
+
За каждый день просрочки после мягкого дедлайна снимается 1 балл. После жёсткого дедлайна работы не принимаются. Даже при опоздании на одну секунду. Сдавайте заранее. Есть исключение: в течение семестра каждый студент может не более 2 раз сдать задание после жёсткого дедлайна — в этом случае за каждый день просрочки продолжает вычитаться по одному баллу (если не оговорено иное).
  
 
При обнаружении плагиата оценки за домашнее задание обнуляются всем задействованным в списывании студентам, а также подаётся докладная записка в деканат. Следует помнить, что при повторном списывании деканат имеет право отчислить студента.
 
При обнаружении плагиата оценки за домашнее задание обнуляются всем задействованным в списывании студентам, а также подаётся докладная записка в деканат. Следует помнить, что при повторном списывании деканат имеет право отчислить студента.
  
При наличии уважительной причины пропущенную проверочную можно написать позднее, а дедлайн по домашнему заданию может быть перенесён (при этом получить дополнительные баллы за призовые места на конкурсе можно только при участии в общий срок). Дедлайн по домашнему заданию переносится на количество дней, равное продолжительности уважительной причины. Решение о том, является ли причина уважительной, принимает исключительно учебный офис.
+
При наличии уважительной причины пропущенную проверочную можно написать позднее, а дедлайн по домашнему заданию может быть перенесён. Дедлайн по домашнему заданию переносится на количество дней, равное продолжительности уважительной причины. Решение о том, является ли причина уважительной, принимает исключительно учебный офис.
  
 
== Лекции ==
 
== Лекции ==
  
'''Лекция 1''' (3 сентября). Введение в машинное обучение. Основные термины, постановки задач и примеры применения. [[https://github.com/esokolov/ml-course-hse/blob/master/2018-fall/lecture-notes/lecture01-intro.pdf Конспект]]
+
Ко всем конспектам на GitHub есть исходники. Исправления и дополнения всячески приветствуются!
  
'''Лекция 2''' (14 сентября). Линейная регрессия. Метрики качества регрессии. Градиентный спуск и способы оценивания градиента. Продвинутые градиентные методы. [[https://github.com/esokolov/ml-course-hse/blob/master/2018-fall/lecture-notes/lecture02-linregr.pdf Конспект]]
+
'''Лекция 1''' (3 сентября). Введение в машинное обучение. Основные термины, постановки задач и примеры применения. [[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/lecture-notes/lecture01-intro.pdf Конспект]] [[https://youtu.be/HLg4EpeqZP0 Запись лекции]]
  
'''Лекция 3''' (21 сентября). Переобучение и регуляризация. Разреженные линейные модели. Квантильная регрессия. Подготовка признаков. [[https://github.com/esokolov/ml-course-hse/blob/master/2018-fall/lecture-notes/lecture03-linregr.pdf Конспект]]
+
'''Лекция 2''' (10 сентября). Модель линейной регрессии. Подготовка данных для линейных моделей. Измерение ошибки в задачах регрессии. Устойчивые к выбросам функции потерь. Относительные функции потерь. [[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/lecture-notes/lecture02-linregr.pdf Конспект]] [[https://youtu.be/0YugAdKXfdY Запись лекции]]
  
'''Лекция 4''' (28 сентября). Линейная классификация. Отступ и верхние оценки на пороговую функцию потерь. Метрики качества классификации. [[https://github.com/esokolov/ml-course-hse/blob/master/2018-fall/lecture-notes/lecture04-linclass.pdf Конспект]]
+
'''Лекция 3''' (17 сентября). Переобучение. Отложенная выборка и кросс-валидация. Аналитическое решение для линейной регрессии и MSE. Градиентный спуск. [[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/lecture-notes/lecture03-linregr.pdf Конспект]] [[https://youtu.be/Sio_aNIxnaA Запись лекции]]
  
'''Лекция 5''' (1 октября). Линейная классификация. Логистическая регрессия и оценки вероятности классов. Метод опорных векторов. [[https://github.com/esokolov/ml-course-hse/blob/master/2018-fall/lecture-notes/lecture05-linclass.pdf Конспект]]
+
'''Лекция 4''' (24 сентября). Стохастический градиентный спуск. SAG, Momentum, AdaGrad, Adam. Регуляризация линейных моделей. [[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/lecture-notes/lecture04-linregr.pdf Конспект]] [[https://www.youtube.com/watch?v=7ODlUv9W7p4 Запись лекции]]
  
'''Лекция 6''' (12 октября). Многоклассовая классификация, сведение к бинарным задачам. Многоклассовая логистическая регрессия. Классификация с пересекающимися классами. Метрики качества многоклассовой классификации. Категориальные признаки: хэширование и счётчики. [[https://github.com/esokolov/ml-course-hse/blob/master/2018-fall/lecture-notes/lecture06-linclass.pdf Конспект]]
+
'''Лекция 5''' (1 октября). Разреженные линейные модели. Линейные классификаторы. Обучение линейных классификаторов через верхние оценки на пороговую функцию потерь. [[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/lecture-notes/lecture05-linclass.pdf Конспект]] [[https://www.youtube.com/watch?v=YtOWnaZGh7E Запись лекции]]
  
'''Лекция 7''' (19 октября). Решающие деревья. Жадный алгоритм построения. Выбор лучшего разбиения с помощью критерия информативности. Критерии информативности для регрессии и классификации. Учёт пропусков в деревьях. Решающие деревья и категориальные признаки. [[https://github.com/esokolov/ml-course-hse/blob/master/2018-fall/lecture-notes/lecture07-trees.pdf Конспект]]
+
'''Лекция 6''' (8 октября). Метрики качества классификации. Доля верных ответов. Точность, полнота, F-мера и другие способы усреднения. ROC-кривая и PR-кривая, площади под ними. [[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/lecture-notes/lecture05-linclass.pdf Конспект]] [[https://www.youtube.com/watch?v=mwUrBQoHdQM Запись лекции]]
  
'''Лекция 8''' (2 ноября). Бутстрап и бэггинг. Разложение ошибки на смещение и разброс (bias-variance decomposition). Случайный лес. Вычисление расстояний с помощью лесов. [[https://github.com/esokolov/ml-course-hse/blob/master/2018-fall/lecture-notes/lecture08-ensembles.pdf Конспект]]
+
'''Лекция 7''' (15 октября). Оценивание вероятностей. Логистическая регрессия. [[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/lecture-notes/lecture06-linclass.pdf Конспект]] [[https://www.youtube.com/watch?v=2-wWxLeVd1U Запись лекции]]
  
'''Лекция 9''' (16 ноября). Градиентный бустинг. Регуляризация. Особенности бустинга над деревьями. Взвешивание объектов в градиентном бустинге. [[https://github.com/esokolov/ml-course-hse/blob/master/2018-fall/lecture-notes/lecture09-ensembles.pdf Конспект]]
+
'''Лекция 8''' (29 октября). Метод опорных векторов. Многоклассовая классификация. Метрики качества многоклассовой классификации. [[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/lecture-notes/lecture06-linclass.pdf Конспект по SVM]] [[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/lecture-notes/lecture07-linclass.pdf Конспект по многоклассовой классификации]] [[https://youtu.be/OsfuADBOCZY Запись лекции]]
  
'''Лекция 10''' (23 ноября). Оптимизация второго порядка в градиентном бустинге. Регуляризация деревьев. XGBoost. Стекинг. [[https://github.com/esokolov/ml-course-hse/blob/master/2018-fall/lecture-notes/lecture10-ensembles.pdf Конспект]]
+
'''Лекция 9''' (5 ноября). Решающие деревья. Жадный алгоритм обучения дерева. Функционалы качества предикатов. Связь решающих деревьев и линейных моделей. Разложение ошибки на смещение и разброс. [[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/lecture-notes/lecture08-trees.pdf Конспект по деревьям]] [[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/lecture-notes/lecture09-ensembles.pdf Конспект по BVD]] [[https://youtu.be/biDD-wAZrDQ Запись лекции]]
  
'''Лекция 11''' (30 ноября). Графы вычислений, их обучение и метод обратного распространения ошибки. Полносвязные, свёрточные и рекуррентные слои. Возможности аппроксимации.
+
'''Лекция 10''' (12 ноября). Бэггинг и случайные леса. Out-of-bag оценка. Градиентный бустинг. [[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/lecture-notes/lecture09-ensembles.pdf Конспект по бэггингу и RF]] [[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/lecture-notes/lecture10-ensembles.pdf Конспект по бустингу]] [[https://youtu.be/TGevGT8qbQw Запись лекции]]
  
'''Лекция 12''' (7 ноября). Обучение без учителя. Кластеризация: метрики качества, K-Means, иерархический и графовый подходы. Визуализация, t-SNE. Обучение представлений. word2vec.
+
'''Лекция 11''' (19 ноября). Градиентный бустинг. Сокращение шага. Стохастический градиентный бустинг. Бустинг над деревьями, дообучение прогнозов в листьях. Бустинг второго порядка. [[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/lecture-notes/lecture10-ensembles.pdf Конспект по бустингу]] [[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/lecture-notes/lecture11-ensembles.pdf Продолжение конспекта по бустингу]] [[https://www.youtube.com/watch?v=pfT2nqR_Q24 Запись лекции]]
  
'''Лекция 13''' (14 декабря). Метод главных компонент, его связь с матричными разложениями. Рекомендательные системы: постановка задачи, коллаборативные методы, матричные разложения, контентные методы.
+
'''Лекция 12''' (26 ноября). Бустинг второго порядка. Регуляризация деревьев в бустинге. Выбор предикатов под функционал бустинга. Разное. [[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/lecture-notes/lecture11-ensembles.pdf Конспект]] [[https://youtu.be/aoCbsALAdSU Запись лекции]]
 +
 
 +
'''Лекция 13''' (10 декабря). Разбор контрольной работы. Обучение без учителя. Кластеризация. Метрики качества кластеризации. Метод K-Means. [[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/lecture-notes/lecture12-unsupervised.pdf Конспект]] [[https://youtu.be/sh3xKM4OMdw Запись лекции]]
 +
 
 +
'''Лекция 14''' (17 декабря). Кластеризация. Метод DBSCAN. Визуализация и t-SNE. [[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/lecture-notes/lecture12-unsupervised.pdf Конспект]] [[https://youtu.be/U5EGXyp-G2Q Запись лекции]]
  
 
== Семинары ==
 
== Семинары ==
  
'''Семинар 1.''' [https://github.com/esokolov/ml-course-hse/blob/master/2018-fall/seminars/sem01-intro.ipynb Ноутбук].
+
'''Семинар 1'''. Типы данных и виды задач машинного обучения [[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/seminars/sem01-data.ipynb Ноутбук]]. Библиотека pandas [[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/seminars/sem01-pandas.ipynb Ноутбук]].
  
'''Семинар 2.''' [https://github.com/esokolov/ml-course-hse/blob/master/2018-fall/seminars/sem02-sklearn.ipynb Ноутбук].
+
'''Семинар 2'''. Исследование данных. Библиотека scikit-learn. Подготовка данных для линейных моделей. [[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/seminars/sem02-sklearn-linregr.ipynb Ноутбук]]
  
'''Семинар 3.''' [https://github.com/esokolov/ml-course-hse/blob/master/2018-fall/seminars/sem03-linregr.pdf Конспект], [https://github.com/esokolov/ml-course-hse/blob/master/2018-fall/seminars/sem03-linregr.ipynb ноутбук].
+
'''Семинар 3'''. Векторное дифференцирование [[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/seminars/sem03-vector-diff.pdf Конспект]]. Градиентный спуск [[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/seminars/sem03-gd.ipynb Ноутбук]]. А также: [[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/seminars/sem03-numpy.ipynb Ноутбук про numpy для самостоятельного изучения]].
  
'''Семинар 4.''' [https://github.com/esokolov/ml-course-hse/blob/master/2018-fall/seminars/sem04-linregr.pdf Конспект].
+
'''Семинар 4'''. Обработка данных. Работа с категориальными и текстовыми данными. Mean-target encoding. [[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/seminars/sem04-features.pdf Конспект]] [[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/seminars/sem04-features.ipynb Ноутбук]]
  
'''Семинар 5.''' [https://github.com/esokolov/ml-course-hse/blob/master/2018-fall/seminars/sem05-linclass-metrics.pdf Конспект].
+
'''Семинар 5'''. Метрики качества классификации. [[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/seminars/sem05-linclass-metrics.pdf Конспект]]
  
'''Семинар 6.''' [https://github.com/esokolov/ml-course-hse/blob/master/2018-fall/seminars/sem06.pdf Конспект], [https://github.com/esokolov/ml-course-hse/blob/master/2018-fall/seminars/sem06.ipynb ноутбук].
+
'''Семинар 6'''. Оценивание вероятностей классов. Калибровка вероятностей. Квантильная регрессия. [[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/seminars/sem06-probs-quantile.pdf Конспект]] [[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/seminars/sem06-calibration.ipynb Ноутбук]]
  
'''Семинар 7.''' [https://github.com/esokolov/ml-course-hse/blob/master/2018-fall/seminars/sem07-trees.ipynb Ноутбук].
+
'''Семинар 7'''. Решающие деревья. Критерии информативности. [[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/seminars/sem07-trees.pdf Конспект]] [[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/seminars/sem07-trees.ipynb Ноутбук]]
  
'''Семинар 8.''' [https://github.com/esokolov/ml-course-hse/blob/master/2018-fall/seminars/sem08-bvd.pdf Конспект].
+
'''Семинар 8'''. Разложение ошибки на смещение и разброс. [[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/seminars/sem08-bvd.pdf Конспект]]
  
== Практические задания ==
+
'''Семинар 9'''. Почему градиентный бустинг так устроен? [[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/seminars/sem09-gbm-part1.pdf Конспект]] [[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/seminars/sem09-gbm-part2.ipynb Ноутбук]]
  
За каждый день просрочки после мягкого дедлайна снимается 1 балл. После жёсткого дедлайна работы не принимаются. В течение семестра каждый студент может не более 2 раз сдать задание после жёсткого дедлайна.
+
== Практические задания ==
  
'''Задание 1.''' Работа с Pandas и Matplotlib.
+
'''Задание 1.''' Pandas и распределение студентов ПМИ по элективам.
 
   
 
   
Мягкий дедлайн: 07:59 15.09.2018.  
+
Мягкий дедлайн: 25.09.2021 23:59 MSK.  
  
Жесткий дедлайн: 23:59 16.09.2018.
+
Жесткий дедлайн: 28.09.2021 23:59 MSK.
  
[https://github.com/esokolov/ml-course-hse/blob/master/2018-fall/homeworks-practice/homework-practice-01.ipynb Github].
+
[[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/homeworks-practice/homework-practice-01-pandas.ipynb Ноутбук с заданием]]
  
'''Задание 2.''' Numpy. Линейная регрессия.
+
'''Задание 2.''' Разведочный анализ данных, линейная регрессия и разработка признаков.
 +
 +
Мягкий дедлайн: 11.10.2021 23:59 MSK.  
  
Дата выдачи: 17.09.2018
+
Жесткий дедлайн: 14.10.2021 23:59 MSK.
  
Мягкий дедлайн: 2:59MSK 24.09.2018
+
[[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/homeworks-practice/homework-practice-02-linregr.ipynb Ноутбук с заданием]]
  
Жесткий дедлайн: 23:59MSK 26.09.2018.
+
'''Задание 3.''' Градиентный спуск своими руками.
 +
 +
Мягкий дедлайн: 27.10.2021 23:59 MSK.  
  
[https://github.com/esokolov/ml-course-hse/blob/master/2018-fall/homeworks-practice/homework-practice-02.ipynb Условие],
+
Жесткий дедлайн: 29.10.2021 23:59 MSK.
[https://github.com/esokolov/ml-course-hse/blob/master/2018-fall/homeworks-practice/homework-practice-02-templates.zip архив с шаблонами],
+
[https://contest.yandex.ru/contest/9148/enter/ соревнование в Яндекс.Контесте],
+
[https://official.contest.yandex.ru/contest/9148/enter/ альтернативная ссылка на соревнование в Яндекс.Контесте].
+
  
'''Задание 3.''' Регуляризация. Градиентный спуск.
+
[[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/homeworks-practice/homework-practice-03-gd/homework-practice-03-gd.ipynb Ноутбук с заданием]]
  
Дата выдачи: 22.09.2018
+
'''Задание 4.''' Классификация.
 +
 +
Мягкий дедлайн: 10.11.2021 23:59 MSK.  
  
Мягкий дедлайн: 7:59MSK 02.10.2018
+
Жесткий дедлайн: 13.11.2021 23:59 MSK.
  
Жесткий дедлайн: 23:59MSK 03.10.2018.
+
[[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/homeworks-practice/homework-practice-04-classification.ipynb Ноутбук с заданием]]
 
+
[https://github.com/esokolov/ml-course-hse/blob/master/2018-fall/homeworks-practice/homework-practice-03.ipynb Условие],
+
[https://github.com/esokolov/ml-course-hse/blob/master/2018-fall/homeworks-practice/data/homework-practice-03-data.csv данные],
+
[https://contest.yandex.ru/contest/9247 соревнование в Яндекс.Контесте],
+
[https://official.contest.yandex.ru/contest/9247 альтернативная ссылка на соревнование в Яндекс.Контесте].
+
 
+
'''Задание 4.''' Калибровка вероятностей, обработка категориальных признаков.
+
 
+
Дата выдачи: 12.10.2018
+
 
+
Мягкий дедлайн:  7:59MSK 20.10.2018
+
 
+
Жесткий дедлайн: 23:59MSK 21.10.2018.
+
 
+
[https://github.com/esokolov/ml-course-hse/blob/master/2018-fall/homeworks-practice/homework-practice-04.ipynb Условие]
+
  
 
'''Задание 5.''' Решающие деревья.
 
'''Задание 5.''' Решающие деревья.
 +
 +
Мягий дедлайн: 26.11.2021 23:59 MSK.
  
Дата выдачи: 08.11.2018
+
Жестокий дедлайн: 26.11.2021 23:59 MSK.
  
Мягкий дедлайн:  7:59MSK 18.11.2018
+
[[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/homeworks-practice/homework-practice-05-trees/homework-practice-05-trees.ipynb Ноутбук с заданием]]
 
+
Жесткий дедлайн: 23:59MSK 19.11.2018.
+
 
+
[https://github.com/esokolov/ml-course-hse/blob/master/2018-fall/homeworks-practice/homework-practice-05/homework-practice-05.ipynb Условие]
+
  
 
'''Задание 6.''' Разложение ошибки на смещение и разброс.
 
'''Задание 6.''' Разложение ошибки на смещение и разброс.
 +
 +
Мягкий дедлайн: 23:59MSK 07.12.2021
  
Дата выдачи: 20.11.2018
+
Жесткий дедлайн: 23:59MSK 10.12.2021
  
Мягкий дедлайн: 6:00MSK 27.11.2018
+
[[https://github.com/esokolov/ml-course-hse/blob/master/2021-fall/homeworks-practice/homework-practice-06-bvd.ipynb Ноутбук с заданием]]
  
Жесткий дедлайн: 23:59MSK 29.11.2018
+
'''Задание 7.''' Обучение бустингов
 +
 +
Мягкий дедлайн: 23:59MSK 18.12.2021
  
[https://github.com/esokolov/ml-course-hse/blob/master/2018-fall/homeworks-practice/homework-practice-06.ipynb Условие]
+
Жесткий дедлайн: 23:59MSK 19.12.2021
  
'''Задание 7.''' Градиентный бустинг.
+
[[https://github.com/esokolov/ml-course-hse/tree/master/2021-fall/homeworks-practice/homework-practice-07-boosting Ноутбук с заданием]]
  
Дата выдачи: 07.12.2018
+
==Теоретические домашние задания==
 
+
Мягкий дедлайн: 05:59MSK 18.12.2018
+
 
+
Жесткий дедлайн: 05:59MSK 19.12.2018
+
  
[https://github.com/esokolov/ml-course-hse/blob/master/2018-fall/homeworks-practice/homework-practice-07.ipynb Условие]
+
[https://github.com/esokolov/ml-course-hse/tree/master/2021-fall/homeworks-theory Теоретические ДЗ] не проверяются, но задачи из них могут войти в проверочные работы на семинарах.
  
 
== Соревнования ==
 
== Соревнования ==
Строка 230: Строка 268:
 
Чтобы вас не пропустили при проверке решений соревнования, '''необходимо''' использовать следующий формат для имени команды (вкладка Team):  
 
Чтобы вас не пропустили при проверке решений соревнования, '''необходимо''' использовать следующий формат для имени команды (вкладка Team):  
  
«Имя Фамилия номер_группы»
+
«[ПМИ] Имя Фамилия номер_группы»
  
 
В течение 3 суток после окончания соревнования в соответствующее задание на anytask необходимо прислать код, воспроизводящий ответы для посылки, фигурирующей в приватном лидерборде. При оформлении кода предполагайте, что данные лежат рядом с ним в папке data, а в результате выполнения кода ответы должны быть записаны в файл solution-N-Username.csv, где N — номер соревнования, Username — ваша фамилия. У нас должна быть возможность запустить код и получить те же ответы, что и в вашей посылке, — в частности, это означает, что:
 
В течение 3 суток после окончания соревнования в соответствующее задание на anytask необходимо прислать код, воспроизводящий ответы для посылки, фигурирующей в приватном лидерборде. При оформлении кода предполагайте, что данные лежат рядом с ним в папке data, а в результате выполнения кода ответы должны быть записаны в файл solution-N-Username.csv, где N — номер соревнования, Username — ваша фамилия. У нас должна быть возможность запустить код и получить те же ответы, что и в вашей посылке, — в частности, это означает, что:
Строка 240: Строка 278:
 
3. Если вы отправляете код с использованием другого языка программирования, в том же письме направьте нам инструкцию по его запуску с тем, чтобы получить тот же файл с ответами.  
 
3. Если вы отправляете код с использованием другого языка программирования, в том же письме направьте нам инструкцию по его запуску с тем, чтобы получить тот же файл с ответами.  
  
В случае отсутствия кода, воспроизводящего результат, в установленный срок студенту выставляется 0 в качестве оценки за соревнование. Студенты, попавшие в топ-5 согласно приватному лидерборду, смогут получить бонусные баллы, если в течение недели после окончания соревнования пришлют на почту курса отчет о получении решения, фигурирующего в приватном лидерборде. Если не оговорено иное, использовать любые внешние данные в соревнованиях '''запрещено'''.
+
В случае отсутствия кода, воспроизводящего результат, в установленный срок студенту выставляется 0 в качестве оценки за соревнование. Студенты, попавшие в топ-3 согласно приватному лидерборду, смогут получить бонусные баллы, если в течение недели после окончания соревнования сдадут в anytask отчет о получении решения, фигурирующего в приватном лидерборде. Если не оговорено иное, использовать любые внешние данные в соревнованиях '''запрещено'''. Под внешними данными понимаются размеченные данные, где разметка имеет прямое отношение к решаемой задаче. Грубо говоря, сборник текстов с википедии не считается внешними данными.
  
=== Соревнование 1: House pricing ===
+
В некоторых соревнованиях данные взяты из завершившегося соревнования на Kaggle.
 +
Категорически запрещено использовать данные из оригинального соревнования для восстановления целевой переменной на тестовой выборке.
  
Дата выдачи: 15.09.2018
+
=== Соревнование 1 ===
  
Срок окончания соревнования: 30.09.2018 23:59MSK
+
Задача: выявление мошеннических тразнакций
  
Срок отправки кода: 03.10.2018 23:59MSK
+
Это соревнование на бонусные баллы, оно не является обязательным.
  
Бейзлайны: на 4 и на 8 баллов
+
Ссылка для участия: https://www.kaggle.com/t/bbc6f629ab1a4e4b9a79900f94dea96b
  
[https://www.kaggle.com/t/5a486fc7863548a58cfc1f702690b5c3 Ссылка на участие в соревновании]
+
Дедлайн: 13.12.2021 23:59MSK
  
=== Соревнование 2: Sentiment analysis ===
+
В задании всего один бейзлайн (lightgbm), ненулевые баллы получают решения, преодолевшие его на приватном лидерборде.
 +
Все решения выше этого бейзлайна оцениваются по равномерной шкале от 0 до 5.
  
Дата выдачи: 15.10.2018
+
Обратите внимание на раздел Baselines на Kaggle — там можно найти много полезного.
 
+
Срок окончания соревнования: 04.11.2018 23:59UTC
+
 
+
Бейзлайны: TBA
+
 
+
[https://www.kaggle.com/t/1e4f5623f3fc4f898cec6b1e21acf6b5 Ссылка на участие в соревновании]
+
 
+
В данном соревновании оцениваются только решения, полученные как результат работы [https://www.kaggle.com/kernels private kernel], к которому дан доступ для просмотра ассистенту вашей группы.
+
 
+
=== Соревнование 3: The new order ===
+
 
+
Дата выдачи: 28.11.2018
+
 
+
Срок окончания соревнования: 15.12.2018 23:59UTC
+
 
+
Бейзлайны: TBA
+
 
+
[https://www.kaggle.com/t/9c050ce0ed5742088d5660c69360ccbf Ссылка на участие в соревновании]
+
 
+
В данном соревновании оцениваются только решения, полученные как результат работы [https://www.kaggle.com/kernels private kernel], к которому дан доступ для просмотра ассистенту вашей группы.
+
 
+
==Теоретические домашние задания==
+
 
+
'''Теоретическое домашнее задание 1''': линейная регрессия [[https://github.com/esokolov/ml-course-hse/blob/master/2018-fall/homeworks-theory/homework-theory-01-linregr.pdf ссылка]]
+
 
+
'''Теоретическое домашнее задание 2''': линейная классификация [[https://github.com/esokolov/ml-course-hse/blob/master/2018-fall/homeworks-theory/homework-theory-02-linclass.pdf ссылка]]
+
 
+
'''Теоретическое домашнее задание 3''': решающие деревья [[https://github.com/esokolov/ml-course-hse/blob/master/2018-fall/homeworks-theory/homework-theory-03-trees.pdf ссылка]]
+
 
+
'''Теоретическое домашнее задание 4''': разложение ошибки на смещение и разброс [[https://github.com/esokolov/ml-course-hse/blob/master/2018-fall/homeworks-theory/homework-theory-04-bvd.pdf ссылка]]
+
  
 
== Бонусы за соревнования ==
 
== Бонусы за соревнования ==
Строка 293: Строка 303:
  
 
== Контрольная работа ==
 
== Контрольная работа ==
Контрольная работа состоится на лекции 7 декабря. В варианте будут два теоретических вопроса и две задачи (возможно, будут также дополнительные задачи на бонусные баллы, для получения максимальной оценки за контрольную их решать не потребуется). Теоретические вопросы будут затрагивать материалы всех лекций и семинаров по темам до градиентного бустинга включительно. Основные задачи будут затрагивать все темы, которые затрагивались в теоретических домашних заданиях (линейные модели, деревья, разложение ошибки на смещение и разброс).
+
 
 +
Контрольная работа состоится 3 декабря на лекции. Продолжительность — 80 минут. Проходит в zoom, студенты должны будут писать работу с включенным камерами и расшаренным экраном. На фотографирование и сдачу листочков дополнительно даётся 5 минут.
 +
 
 +
[https://docs.google.com/document/d/1I40EZqslLoj10CSQ0LbsW17cB5uHVHooJ86kcThKewE/edit?usp=sharing Вопросы для подготовки]
 +
 
 +
[https://github.com/esokolov/ml-course-hse/blob/master/2020-fall/midterm-fall-2020-example.pdf Нулевой вариант]
  
 
== Экзамен ==
 
== Экзамен ==
  
 +
[https://docs.google.com/document/d/1hMY0QxbU4qMpGuC8aZr1sWd5qrPdPiOl97FJU0fdpSk/edit?usp=sharing Вопросы для подготовки]
  
 
== Полезные материалы ==
 
== Полезные материалы ==
Строка 310: Строка 326:
 
* [http://www.machinelearning.ru/wiki/index.php?title=Машинное_обучение_%28курс_лекций%2C_К.В.Воронцов%29 Курс по машинному обучению К.В. Воронцова]
 
* [http://www.machinelearning.ru/wiki/index.php?title=Машинное_обучение_%28курс_лекций%2C_К.В.Воронцов%29 Курс по машинному обучению К.В. Воронцова]
 
* [https://yandexdataschool.ru/edu-process/courses/machine-learning Видеозаписи лекций курса Школы Анализа Данных, К.В. Воронцов]
 
* [https://yandexdataschool.ru/edu-process/courses/machine-learning Видеозаписи лекций курса Школы Анализа Данных, К.В. Воронцов]
 +
* [https://www.coursera.org/specializations/machine-learning-from-statistics-to-neural-networks Coursera: Машинное обучение от статистики до нейросетей (специализация)]
 
* [https://www.coursera.org/specializations/machine-learning-data-analysis Coursera: Машинное обучение и анализ данных (специализация)]
 
* [https://www.coursera.org/specializations/machine-learning-data-analysis Coursera: Машинное обучение и анализ данных (специализация)]
 
* [https://www.coursera.org/learn/introduction-machine-learning Coursera: Введение в машинное обучение, К.В. Воронцов]
 
* [https://www.coursera.org/learn/introduction-machine-learning Coursera: Введение в машинное обучение, К.В. Воронцов]
 +
* [https://openedu.ru/course/hse/INTRML/ Введение в машинное обучение (онлайн-курс НИУ ВШЭ)]
  
 
== Страницы предыдущих лет ==
 
== Страницы предыдущих лет ==
 +
 +
[[Машинное_обучение_1/2020_2021 | 2020/2021 учебный год]]
 +
 +
[[Машинное_обучение_1/2019_2020 | 2019/2020 учебный год]]
 +
 +
[[Машинное_обучение_1/2018_2019 | 2018/2019 учебный год]]
  
 
[[Машинное_обучение_1/2017_2018 | 2017/2018 учебный год]]
 
[[Машинное_обучение_1/2017_2018 | 2017/2018 учебный год]]
  
 
[[Машинное_обучение_1/2016_2017 | 2016/2017 учебный год]]
 
[[Машинное_обучение_1/2016_2017 | 2016/2017 учебный год]]

Текущая версия на 18:04, 30 декабря 2021

О курсе

borderless

Курс читается для студентов 3-го курса ПМИ ФКН ВШЭ в 1-2 модулях.

Проводится с 2016 года.

Лектор: Соколов Евгений Андреевич

Лекции проходят по пятницам, 11:10 - 12:30, в zoom (https://zoom.us/j/98499384799?pwd=OC9GcFd5QlJkZlA5Uk85SHNVTGxSdz09).




Полезные ссылки

Карточка курса и программа

Репозиторий с материалами на GitHub

Видеозаписи лекций 18/19 года

Почта для сдачи домашних заданий (на самом деле задания сдаются в AnyTask, но если он не работает, то присылайте на почту): hse.cs.ml+<номер группы>@gmail.com (например, hse.cs.ml+171@gmail.com)

Канал в telegram для объявлений: https://t.me/joinchat/G2T6pB1CgF82NTMy

Чат в telegram для обсуждений (предназначение чата до конца не ясно, вопросы может быть правильнее задавать в чатах групп): https://t.me/joinchat/NRpKJ09prtRlMTli

Ссылка на курс в Anytask: https://anytask.org/course/856

Таблица с оценками

Оставить отзыв на курс: форма

Вопросы по курсу можно задавать в телеграм лектору (esokolov@) или семинаристу. Вопросы по материалам лекций/семинаров и по заданиям лучше всего задавать на форуме.

Семинары

Группа Преподаватель
191 (МОП) Хрушков Павел Вадимович
192 (МОП) Соколов Евгений Андреевич
193 (МОП) Садртдинов Ильдус Рустемович
194 (АДИС) Цвигун Аким Олегович
195 (РС) Каюмов Эмиль Марселевич
196 (РС) Шабалин Александр Михайлович
197 (АПР) Глазкова Екатерина Васильевна
198 (ТИ) Ульянкин Филипп @ppilif
199 (МИ) Семенкин Антон Александрович
1910 (ПР) Биршерт Алексей Дмитриевич
ФЭН Зехов Матвей Сергеевич
Пермь (БИ) Собянин Кирилл Валентинович
Пермь (ПИ) Собянин Кирилл Валентинович

Консультации

Учебные ассистенты
Евгений Шабалин - 191
Никита Морозов - 192
Щербинин Артём - 193
Сибагатова Софья - 193
Хайкин Глеб - 194
Никита Андреев - 195
Сабина Даянова - 195
Айнур Мухамбетова - 196
Драмбян Давид - 198
Абрахам Максим - 199
Наумова Настя - 1910
Коган Саша - 197
Баранов Михаил - ФЭН
Русакова Елена

Правила выставления оценок

В курсе предусмотрено несколько форм контроля знания:

  • Самостоятельные работы на семинарах, проверяющие знание основных фактов с лекций и семинаров
  • Практические домашние работы на Python
  • Письменная контрольная работа
  • Письменный экзамен

Итоговая оценка вычисляется на основе оценки за работу в семестре и оценки за экзамен:

Итог = Округление(0.15 * ПР + 0.4 * ДЗ + 0.15 * КР + 0.3 * Э)

ПР — средняя оценка за самостоятельные работы на семинарах

ДЗ — средняя оценка за практические домашние работы на Python

КР — оценка за контрольную работу

Э — оценка за экзамен

Округление арифметическое.

Правила сдачи заданий

За каждый день просрочки после мягкого дедлайна снимается 1 балл. После жёсткого дедлайна работы не принимаются. Даже при опоздании на одну секунду. Сдавайте заранее. Есть исключение: в течение семестра каждый студент может не более 2 раз сдать задание после жёсткого дедлайна — в этом случае за каждый день просрочки продолжает вычитаться по одному баллу (если не оговорено иное).

При обнаружении плагиата оценки за домашнее задание обнуляются всем задействованным в списывании студентам, а также подаётся докладная записка в деканат. Следует помнить, что при повторном списывании деканат имеет право отчислить студента.

При наличии уважительной причины пропущенную проверочную можно написать позднее, а дедлайн по домашнему заданию может быть перенесён. Дедлайн по домашнему заданию переносится на количество дней, равное продолжительности уважительной причины. Решение о том, является ли причина уважительной, принимает исключительно учебный офис.

Лекции

Ко всем конспектам на GitHub есть исходники. Исправления и дополнения всячески приветствуются!

Лекция 1 (3 сентября). Введение в машинное обучение. Основные термины, постановки задач и примеры применения. [Конспект] [Запись лекции]

Лекция 2 (10 сентября). Модель линейной регрессии. Подготовка данных для линейных моделей. Измерение ошибки в задачах регрессии. Устойчивые к выбросам функции потерь. Относительные функции потерь. [Конспект] [Запись лекции]

Лекция 3 (17 сентября). Переобучение. Отложенная выборка и кросс-валидация. Аналитическое решение для линейной регрессии и MSE. Градиентный спуск. [Конспект] [Запись лекции]

Лекция 4 (24 сентября). Стохастический градиентный спуск. SAG, Momentum, AdaGrad, Adam. Регуляризация линейных моделей. [Конспект] [Запись лекции]

Лекция 5 (1 октября). Разреженные линейные модели. Линейные классификаторы. Обучение линейных классификаторов через верхние оценки на пороговую функцию потерь. [Конспект] [Запись лекции]

Лекция 6 (8 октября). Метрики качества классификации. Доля верных ответов. Точность, полнота, F-мера и другие способы усреднения. ROC-кривая и PR-кривая, площади под ними. [Конспект] [Запись лекции]

Лекция 7 (15 октября). Оценивание вероятностей. Логистическая регрессия. [Конспект] [Запись лекции]

Лекция 8 (29 октября). Метод опорных векторов. Многоклассовая классификация. Метрики качества многоклассовой классификации. [Конспект по SVM] [Конспект по многоклассовой классификации] [Запись лекции]

Лекция 9 (5 ноября). Решающие деревья. Жадный алгоритм обучения дерева. Функционалы качества предикатов. Связь решающих деревьев и линейных моделей. Разложение ошибки на смещение и разброс. [Конспект по деревьям] [Конспект по BVD] [Запись лекции]

Лекция 10 (12 ноября). Бэггинг и случайные леса. Out-of-bag оценка. Градиентный бустинг. [Конспект по бэггингу и RF] [Конспект по бустингу] [Запись лекции]

Лекция 11 (19 ноября). Градиентный бустинг. Сокращение шага. Стохастический градиентный бустинг. Бустинг над деревьями, дообучение прогнозов в листьях. Бустинг второго порядка. [Конспект по бустингу] [Продолжение конспекта по бустингу] [Запись лекции]

Лекция 12 (26 ноября). Бустинг второго порядка. Регуляризация деревьев в бустинге. Выбор предикатов под функционал бустинга. Разное. [Конспект] [Запись лекции]

Лекция 13 (10 декабря). Разбор контрольной работы. Обучение без учителя. Кластеризация. Метрики качества кластеризации. Метод K-Means. [Конспект] [Запись лекции]

Лекция 14 (17 декабря). Кластеризация. Метод DBSCAN. Визуализация и t-SNE. [Конспект] [Запись лекции]

Семинары

Семинар 1. Типы данных и виды задач машинного обучения [Ноутбук]. Библиотека pandas [Ноутбук].

Семинар 2. Исследование данных. Библиотека scikit-learn. Подготовка данных для линейных моделей. [Ноутбук]

Семинар 3. Векторное дифференцирование [Конспект]. Градиентный спуск [Ноутбук]. А также: [Ноутбук про numpy для самостоятельного изучения].

Семинар 4. Обработка данных. Работа с категориальными и текстовыми данными. Mean-target encoding. [Конспект] [Ноутбук]

Семинар 5. Метрики качества классификации. [Конспект]

Семинар 6. Оценивание вероятностей классов. Калибровка вероятностей. Квантильная регрессия. [Конспект] [Ноутбук]

Семинар 7. Решающие деревья. Критерии информативности. [Конспект] [Ноутбук]

Семинар 8. Разложение ошибки на смещение и разброс. [Конспект]

Семинар 9. Почему градиентный бустинг так устроен? [Конспект] [Ноутбук]

Практические задания

Задание 1. Pandas и распределение студентов ПМИ по элективам.

Мягкий дедлайн: 25.09.2021 23:59 MSK.

Жесткий дедлайн: 28.09.2021 23:59 MSK.

[Ноутбук с заданием]

Задание 2. Разведочный анализ данных, линейная регрессия и разработка признаков.

Мягкий дедлайн: 11.10.2021 23:59 MSK.

Жесткий дедлайн: 14.10.2021 23:59 MSK.

[Ноутбук с заданием]

Задание 3. Градиентный спуск своими руками.

Мягкий дедлайн: 27.10.2021 23:59 MSK.

Жесткий дедлайн: 29.10.2021 23:59 MSK.

[Ноутбук с заданием]

Задание 4. Классификация.

Мягкий дедлайн: 10.11.2021 23:59 MSK.

Жесткий дедлайн: 13.11.2021 23:59 MSK.

[Ноутбук с заданием]

Задание 5. Решающие деревья.

Мягий дедлайн: 26.11.2021 23:59 MSK.

Жестокий дедлайн: 26.11.2021 23:59 MSK.

[Ноутбук с заданием]

Задание 6. Разложение ошибки на смещение и разброс.

Мягкий дедлайн: 23:59MSK 07.12.2021

Жесткий дедлайн: 23:59MSK 10.12.2021

[Ноутбук с заданием]

Задание 7. Обучение бустингов

Мягкий дедлайн: 23:59MSK 18.12.2021

Жесткий дедлайн: 23:59MSK 19.12.2021

[Ноутбук с заданием]

Теоретические домашние задания

Теоретические ДЗ не проверяются, но задачи из них могут войти в проверочные работы на семинарах.

Соревнования

Правила участия и оценивания

В соревновании по анализу данных вам предлагается по имеющимся данным решить некоторую задачу, оптимизируя указанную метрику, и отправить ответы для заданного тестового множества. Максимальное количество посылок в сутки ограничено (как правило, разрешается сделать 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 в качестве оценки за соревнование. Студенты, попавшие в топ-3 согласно приватному лидерборду, смогут получить бонусные баллы, если в течение недели после окончания соревнования сдадут в anytask отчет о получении решения, фигурирующего в приватном лидерборде. Если не оговорено иное, использовать любые внешние данные в соревнованиях запрещено. Под внешними данными понимаются размеченные данные, где разметка имеет прямое отношение к решаемой задаче. Грубо говоря, сборник текстов с википедии не считается внешними данными.

В некоторых соревнованиях данные взяты из завершившегося соревнования на Kaggle. Категорически запрещено использовать данные из оригинального соревнования для восстановления целевой переменной на тестовой выборке.

Соревнование 1

Задача: выявление мошеннических тразнакций

Это соревнование на бонусные баллы, оно не является обязательным.

Ссылка для участия: https://www.kaggle.com/t/bbc6f629ab1a4e4b9a79900f94dea96b

Дедлайн: 13.12.2021 23:59MSK

В задании всего один бейзлайн (lightgbm), ненулевые баллы получают решения, преодолевшие его на приватном лидерборде. Все решения выше этого бейзлайна оцениваются по равномерной шкале от 0 до 5.

Обратите внимание на раздел Baselines на Kaggle — там можно найти много полезного.

Бонусы за соревнования

За успешное участие в соревнованиях по анализу данных могут быть выставлены бонусные баллы, которые можно прибавить к оценке за любое практическое или теоретическое домашнее задание, а также за самостоятельную работу. Под успешным участием понимается попадание в топ-10% мест; если соревнование особо сложное и крупное, может рассматриваться и попадание в топ-20% мест. Конкретное число баллов определяется преподавателями и зависит от сложности соревнования и занятого места. За одно соревнование можно получить не более 5 баллов. Для получения оценки необходимо предоставить краткий отчёт о решении задачи.

Контрольная работа

Контрольная работа состоится 3 декабря на лекции. Продолжительность — 80 минут. Проходит в zoom, студенты должны будут писать работу с включенным камерами и расшаренным экраном. На фотографирование и сдачу листочков дополнительно даётся 5 минут.

Вопросы для подготовки

Нулевой вариант

Экзамен

Вопросы для подготовки

Полезные материалы

Книги

  • 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.

Курсы по машинному обучению и анализу данных

Страницы предыдущих лет

2020/2021 учебный год

2019/2020 учебный год

2018/2019 учебный год

2017/2018 учебный год

2016/2017 учебный год