VOlni / ml-course-msu

Lecture notes and code for Machine Learning practical course on CMC MSU

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Семинары по машинному обучению, ВМК МГУ

Конспекты, код и прочие материалы к семинарам по машинному обучению, проводимым на ВМК МГУ.

Почта для заданий: ml.cmc.msu@gmail.com

Страница курса на machinelearning.ru

Канал в telegram для объявлений

Оценки за курс

На семинары и работу ассистента можно оставить отзыв: [анонимно без регистрации и смс]

Курс лекций на ФКН ВШЭ: [wiki] [материалы]

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

Итоговая контрольная работа:

  1. На последней лекции будет проведена контрольная работа, которая затронет все темы, изученные в течение семестра.
  2. Контрольная оценивается по двухбалльной шкале (зачет/незачет), незачет влечет за собой недопуск к экзамену.
  3. Студент, не получивший допуск, переписывает на экзамене контрольную. В случае успеха он сдает экзамен на первой пересдаче. В случае незачета он снова переписывает контрольную на первой пересдаче, и так далее.

Семинары:

  1. На семинарах по каждой пройденной теме будут проводиться проверочные работы. Каждая проверочная оценивается по пятибалльной шкале. В зависимости от оценки за проверочную, студент освобождается от части или от всех задач по этой теме на итоговой контрольной работе.
  2. На семинарах будут выдаваться практические задания, которые будут оцениваться по десятибалльной шкале.
  3. В течение семестра будут проводиться конкурсы по анализу данных. Правила выставления оценок для каждого конкурса указываются в условиях самого конкурса.
  4. Оценка за работу в семестре равна сумме оценок за проверочные работы, практические задания и конкурсы.
  5. Если оценка за работу в семестре не меньше 100% от максимальной оценки за проверочные и лабораторные работы, то студент освобождается от написания итоговой контрольной и получает допуск к экзамену автоматом.
  6. Если оценка за работу в семестре не меньше 80% от максимальной оценки за проверочные и лабораторные работы и конкурсы, то студент получает +1 балл на экзамене (при условии получения положительной оценки).
  7. В конце семестра разрешается переписать все проверочные, пропущенные по уважительной причине.

Занятия

Дата Номер Тема Материалы ДЗ
2 сентября Семинар 1 Вводное занятие:
  • Основные термины в машинном обучении
  • Этапы решения задачи анализа данных
Конспект
16 сентября Семинар 2 Метрические методы:
  • Особенности метрических методов: чувствительность к масштабу и шуму, проклятие размерности
  • Примеры метрик
  • Метрики на категориальных признаках
  • Введение в NumPy, SciPy, Pandas, Scikit-Learn
Конспект
Notebook
23 сентября Семинар 3 Метрические методы:
  • Locality-sensitive hashing
  • Векторизация операций в NumPy
  • Практические особенности kNN и LSH
Конспект
Notebook
Домашнее задание
30 сентября Семинар 4 Решающие деревья:
  • Жадное построение решающих деревьев
  • Критерии информативности
Конспект Домашнее задание
7 октября Семинар 5 Решающие деревья:
  • Стрижка деревьев
  • Учет пропущенных значений
  • Работа с категориальными признаками
  • Случайный лес
Конспект
Notebook
14 октября Семинар 6 Метрики качества:
  • Доля правильных ответов, точность и полнота
  • AUC-ROC
Теория: конспект, раздел 2

Практика: конспект, задача 1.1
21 октября Семинар 7 Метрики качества:
  • AUC-ROC, продолжение
Теория: конспект, раздел 2

Практика: конспект, задачи 1.2, 1.3, 1.4
Домашнее задание
28 октября Семинар 8 Линейная классификация:
  • Свойства градиента
  • Векторное дифференцирование
Теория: конспект
11 ноября Семинар 9 Линейная классификация:
  • Векторное дифференцирование
  • Градиентный спуск и способы оценивания градиента
  • Регуляризация и разреженные модели
Теория: конспект

конспект по разреженным моделям, раздел 5
Домашнее задание
18 ноября Семинар 10 Условная оптимизация:
  • Лагранжиан
  • Двойственные задачи
  • Теорема Куна-Таккера
Теория: конспект Домашнее задание
25 ноября Семинар 11 Отчёты о соревнованиях:
2 декабря Семинар 12 Линейные модели:
  • SVM и двойственная задача
  • Логистическая регрессия и оценивание вероятностей
Теория: конспект Домашнее задание
9 декабря Семинар 13 Линейные модели:
  • Ядра и спрямляющие пространства
  • Применение ядер в линейной регрессии
  • Метрические операции в спрямляющем пространстве
  • Способы построения ядер
Теория: конспект Домашнее задание
16 декабря Семинар 14 Байесовские методы:
  • Многомерное нормальное распределение, его свойства
  • Нормальный дискриминантный анализ
  • Вывод оценок максимального правдоподобия для многомерного нормального распределения
Теория: конспект
16 февраля Семинар 15 Разложение ошибки на смещение и разброс Конспект Домашнее задание
2 марта Семинар 16 Композиции, случайные леса Конспект
9 марта Семинар 17 Градиентный бустинг Теория
Задачи
16 марта Семинар 18 EM-алгоритм и смеси нормальных распределений Конспект (1.1-1.4) Домашнее задание

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

Если задание сдано и было проверено до дедлайна, то разрешается без штрафа внести исправления и прислать новую версию. Новую версию необходимо прислать не позднее мягкого дедлайна. Дальнейшие исправления возможны на усмотрение преподавателей.

Чтобы мы точно успели проверить решение, рекомендуем присылать хотя бы за неделю до дедлайна.

Обратите внимание, что по каждому заданию даётся два дедлайна: мягкий и жёсткий. За сдачу задания после мягкого дедлайна оценка понижается на 0.05*n*(n + 1) баллов, где n — количество дней просрочки. Оценка за задание не может быть отрицательной.

Задание 1: Pandas, kNN и решающие деревья

Условие

Дата выдачи: 16.10.2016

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

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

Задание 2: решающие деревья

Условие

Дата выдачи: 14.11.2016

Мягкий дедлайн: 05.12.2016, 05:59 MSK

Задание 3: EM-алгоритм

Условие

Дата выдачи: 18.04.2017

Мягкий дедлайн: 07.05.2017, 05:59 MSK

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

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

Соревнование 1: вероятность победы в Dota 2

Дата выдачи: 21.10.2016

Дедлайн для индивидуального участия: 6.11.2016

Старт командного участия: 7.11.2016

Дедлайн для командного участия: 20.11.2016

Соревнование: https://inclass.kaggle.com/c/cmc-msu-machine-learning-fall-2016-2017-competition-1

Ссылка для участия: link

Описание задачи

За первое, второе и третье место в индивидуальной части контеста ставится 10, 9 и 8 баллов соответственно. За места с четвертого и по самое последнее выставляется от 7 до 1 баллов по равномерной сетке. Участникам, которые не смогли преодолеть бейзлайн, оценка обнуляется.

По окончании индивидуальной части участники делятся по рейтингу на 3 или 4 корзинки (в зависимости от их количества), из которых собираются случайные равномерные по силе команды. В командной части за места с первого по третье ставятся 4, 3 и 2 балла, а дальше по равномерной сетке до 1. Также в каждой команде будет подсчитан процент улучшения качества относительно лучшего из участников; исходя из этого рейтинга, будут проставлены дополнительные баллы по такому же принципу, как и в предыдущем предложении. Следует помнить, что оценка в командной части для участников из нижних корзинок будет сильно зависить от их понимания решения (отчета и выступления).

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

Альтернативное соревнование

Sberbank Data Science Contest

Правила выставления оценок аналогичны правилам по индивидуальной части соревнования по Dota. Никаких ограничений на методы решения не накладывается. Командное решение не предусмотрено. Если студент участвовал и в индивидуальном соревновании по Dota, и в данном соревновании, то ему будет выставлена максимальная из двух оценок, а не сумма. Возможно решение сначала только контеста Сбербанка, а потом командное учебного по Dota, но нужно заранее (за пару дней до начала командной части) уведомить об этом преподавателей. В зависимости от количества участников контеста шкала может быть понижена и/или разрежена. Также за высокие места среди всех участников в общем зачете или по каждой задаче могут выдаваться серьёзные бонусы.

Соревнование 2: Santander Product Recommendation

Дата выдачи: 28.11.2016

Начало командной части: 7.12.2016

Дедлайн на образование команд: 14.12.2016 (позже этого числа kaggle не разрешит слияние)

Оконачание контеста: 21.12.2016

Соревнование: https://www.kaggle.com/c/santander-product-recommendation

Рекомендации по соревнованию

Для участия в командной части нужно занять достаточно высокое место на public leaderboard. Ориентировочно потребуется занять место min(60, лучшее_место_лучшего_скрипта - 5), но ближе к началу командной части этот порог может быть изменен в ту или иную сторону по усмотрению преподавателей. Всем, кто преодолеет этот порог, будут начислены 7 баллов.

Для каждой команды будет выделен "куратор" — человек, у которого есть опыт в решении контестов и который сможет помочь с идеями. За хорошие места на private leaderboard будут поставлены дополнительные баллы.

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

About

Lecture notes and code for Machine Learning practical course on CMC MSU


Languages

Language:Jupyter Notebook 99.6%Language:HTML 0.4%