Основы машинного обучения/2022

Материал из Wiki - Факультет компьютерных наук
Перейти к: навигация, поиск

О курсе

Курс читается для студентов 2-го курса майнора ИАД в 3-4 модулях.

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

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

Лекции проходят онлайн по средам в 11:10 в zoom.

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

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

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

Записи занятий

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

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

Чат в telegram для флуда: https://t.me/+pbt8rRfldsUzZGUy

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

Таблица с оценками: https://docs.google.com/spreadsheets/d/130puDf_28fPRNKJqtyQAkIyoKnjbVHFtpAcX5zm4CsA/edit?usp=sharing

Семинары

Группа Преподаватель Учебные ассистенты Zoom-конференция Ссылка на чат Материалы семинаров Инвайт в anytask
ИАД-1 Алвандян Нарек Плахин Александр, Макаров Антон Zoom Чат - A1U6NYZ
ИАД-2 Косарев Илья Никифоров Михаил, Пащенко Анатолий Zoom Чат - RbElTlq
ИАД-3 Кантонистова Елена Прохоров Савелий, Червяков Артем Zoom Чат - TdtY747
ИАД-4 Владимир Омелюсик Альмухаметов Денис, Жуматаев Жанту Zoom Чат Материалы t22o3Qw
ИАД-5 Карпова Ася Масликов Егор, Кирилл Сафонов Zoom Чат - Dy5fbVc
ИАД-6 Серякова Василиса Смоленчук Иван, Гудзикевич Максим Zoom Чат ybPLhJX
ИАД-7 Чиркова Надежда Гудзикевич Максим, Кострыкина Екатерина Zoom Чат Материалы zdbENSv
ИАД-8 Семенов Дмитрий Дядюнов Андрей, Пичугин Иван Zoom Чат - Hp2cbwv
ИАД-9 Альперович Вадим Пономаренко Александр, Лапшина Ксения Zoom Чат - JeVWlWS
БИ-1 Васильев Роман Добротворский Николай [Zoom coming soon] Чат - FKmNFoj
БИ-2 Мокрий Юрий Юсупова Арина Zoom Чат - F7rNwgw

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

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

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

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

Oитоговая = Округление(0.4 * ДЗ + 0.1 * ПР + 0.2 * КР + 0.3 * Э)


У групп БИ-1 и БИ-2 (не майнор) оценка за курс также проставляется в третьем модуле:

Оитоговая за третий модуль = Округление(0.8 * ДЗ + 0.2 * ПР)

Обратите внимание, что работы из третьего модуля также влияют на оценку в четвертом


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

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

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

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

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

Автоматы

Если у вас накопленная оценка >= 6 баллов и за контрольную >= 5.5 баллов, то вы можете перенести эту накопленную в итоговую. Или, если хотите, можете отказаться и пойти на экзамен. Но по умолчанию всем, кто может получить автомат, мы ставим автомат.

Накопленная оценка считается по формуле: (0.4 * ДЗ + 0.1 * ПР + 0.2 * КР) / 0.7.

В критериях на автомат все оценки считаются без округления. То есть если у вас за контрольную 5.4 или накоп 5.9, то автомат не положен.

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

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

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

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

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

Лекции

Лекция 1 (19.01.2022). Введение в машинное обучение и анализ данных. [Слайды] [Запись лекции]

Лекция 2 (26.01.2022). Виды задач и виды признаков. Метод k ближайших соседей для классификации. Вычисление расстояний для числовых данных. [Слайды] [Запись лекции]

Лекция 3 (02.02.2022). Измерение ошибки в задачах классификации. Обобщающая способность. Проверка обобщающей способности: отложенная выборка и кросс-валидация. Метод k ближайших соседей с весами. [Слайды] [Запись лекции]

Лекция 4 (09.02.2022). Модель линейной регрессии. Подготовка данных для линейной регрессии. MSE для линейной регрессии в матричной форме. [Слайды] [Запись лекции]

Лекция 5 (16.02.2022). Немного про градиентный спуск. Аналитическая формула для оптимального вектора весов, её недостатки. Переобучение и регуляризация линейных моделей. [Слайды] [Запись лекции]

Лекция 6 (02.03.2022) Линейная регрессия и градиентный спуск. Масштабирование признаков. [Слайды] [Запись лекции]

Лекция 7 (09.03.2022) Градиентный спуск и функции потерь в регрессии. [Слайды] [Запись лекции]

Лекция 8 (16.03.2022) Линейная классификация. [Слайды] [Запись лекции]

Лекция 9 (23.03.2022) Метрики качества классификации.[Слайды] [Запись лекции]

Лекция 10 (06.04.2022) Метрики качества классификации (продолжение). Логистическая регрессия. SVM. [Слайды] [Запись лекции]

Лекция 10.5 (12.04.2022) Логистическая регрессия и SVM. [Слайды] [Запись лекции]

Лекция 11 (13.04.2022) Решающие деревья. [Слайды] [Запись лекции]

Лекция 12 (20.04.2022) Решающие деревья. Композиции моделей. [Слайды] [Запись лекции]

Лекция 13 (27.04.2022) Бэггинг и случайные леса. [Слайды] [Запись лекции]

Лекция 14 (11.05.2022) Градиентный бустинг. [Слайды] [Запись лекции]

Лекция 15 (25.05.2022) Градиентный бустинг (продолжение). Отбор признаков. [Слайды] [Запись лекции]

Лекция 16 (01.06.2022) Отбор признаков. [Слайды] [Запись лекции]

Лекция 17 (08.06.2022) Кластеризация. Слайды [Запись лекции]

Лекция 18 (15.06.2022) Задача ранжирования. Слайды [Запись лекции]

Семинары

Семинар 1 (19.01.2022). Немного про Jupyter notebook и numpy. [Ноутбук] [Запись одного из семинаров]

Семинар 2 (26.01.2022). pandas. [Ноутбук] [Запись одного из семинаров]

Семинар 3 (02.02.2022). KNN. [Ноутбук] [Запись одного из семинаров]

Семинар 4 (09.02.2022). Визуализация данных. [Ноутбук] [Запись одного из семинаров]

Семинар 5 (16.02.2022) ООП. [Ноутбук] [Запись одного из семинаров]

Семинар 6 (02.03.2022) Линейная регрессия. [Ноутбук] [Запись одного из семинаров, Продолжение]

Семинар 7 (09.03.2022) Градиентный спуск. [Ноутбук] [Запись одного из семинаров, Продолжение]

Семинар 8 (16.03.2022) Бинарная классификация. [Ноутбук] [Запись одного из семинаров]

Семинар 9 (13.04.2022) Логистическая регрессия. SVM. ROC-кривая. [Ноутбук] [Запись одного из семинаров]

Семинар 10 (20.04.2022) Обработка текстов: токенизация, лемматизация, стемминг. Bag-of-words и TF-IDF. Регулярные выражения. [Ноутбук] [Запись одного из семинаров]

Семинар 11 (27.04.2022) Многоклассовая классификация. Калибровка вероятностей. Отбор признаков. [Ноутбук] [Запись одного из семинаров]

Семинар 12 (11.05.2022) Решающие деревья. [Ноутбук] [Запись одного из семинаров]

Семинар 13 (25.05.2022) Случайный лес: Bias-Variance decomposition and tradeoff; Bagging; Out-of-bag Error; Feautre importance [Ноутбук] [Запись одного из семинаров]

Семинар 14 (01.06.2022) Бустинг. Часть 1 (Идея подхода, функции потерь, особенности GB)[Ноутбук] [Запись одного из семинаров]

Семинар 15 (08.06.2022) Бустинг. Часть 2 (Различные реализации бустинга) [Ноутбук] [Запись одного из семинаров]

Семинар 16 (15.06.2022) Кластеризация [Ноутбук] [Запись одного из семинаров]

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

Консультации семинаристов

  1. ИАД-1, Нарек Авландян, консультация 26.01.2022 [Запись]
  2. ИАД-4, Владимир Омелюсик, консультация 26.01.2022 [Запись]
  3. ИАД-4, Владимир Омелюсик, консультация 02.03.2022 [Запись]

Семинары в формате консультаций (16.03.2022)

  1. БИ-1 [26 min], Павел Ханин [Запись]
  2. ИАД-7, Надежда Чиркова: Практика линейной регрессии (на примере кредитного скоринга). [Запись]
  3. ИАД-5, Кирилл Сафонов: Mini-batch GD, задача кредитного скоринга от А до Я. [Запись]
  4. ИАД-4, Владимир Омелюсик: Pipeline линрега, ответы на вопросы, матричные производные. [Запись]
  5. ИАД-2 [26 min], Илья Косарев [Запись]
  6. ИАД-8, Дмитрий Семёнов: Ответы на вопросы по ДЗ-4 [Запись]
  7. ИАД-3, Елена Кантонистова: Счётчики, масштабирование признаков, пайпланы. [Запись]

Консультации Евгения Соколова

  1. Консультация с ответами на вопросы (aka Q&A), Евгений Соколов, 21.03.2022 [Запись]
  2. Консультация перед контрольной, Евгений Соколов, 16.05.2022 [Запись]

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

За каждый день просрочки после мягкого дедлайна снимается 1 балл. После жёсткого дедлайна работы не принимаются, но есть исключение. Студенту разрешается два раза сдать домашнее задание после мягкого дедлайна (но до жёсткого) без штрафов. Все дедлайны в 23:59 по московскому времени.

В некоторых группах домашние задания могут отличаться. Уточняйте у семинариста.

Практическое задание 1 - numpy Мягкий дедлайн - 29.01.2022, Жесткий дедлайн 03.02.2022. [Ноутбук]

Практическое задание 2 - pandas Мягкий дедлайн - 10.02.2022, Жесткий дедлайн - 15.02.2022. [Ноутбук]

Практическое задание 3 - EDA Мягкий дедлайн - 01.03.2022, Жесткий дедлайн - 08.03.2022. [Ноутбук]

Практическое задание 4 - kNN, linreg Мягкий дедлайн - 17.03.2022, Жесткий дедлайн - 25.03.2022 [Ноутбук]

Практическое задание 5 - Градиентный спуск Мягкий дедлайн - 12.04.2022, Жесткий дедлайн - 19.04.2022 [Ноутбук]

Практическое задание 6 - Классификация текстов Мягкий дедлайн - 11.05.2022, 23:59, Жесткий дедлайн - 18.05.2022, 23:59 [Ноутбук]

Практическое задание 7 - Решающие деревья. Бэггинг и случайный лес. Мягкий дедлайн - 5.06.2022, 23:59, Жесткий дедлайн - 12.06.2022, 23:59 [Ноутбук]

Практическое задание 8 - Градиентный бустинг и DBSCAN своими руками. Мягкий (он же жёсткий) дедлайн: 19 июня, 23:59 [Ноутбук]

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

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

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

Студент, занявший в соревновании место i, получает оценку

10 - 10 * (i - 1) / M,

где M — количество студентов, принявших участие в соревновании;

i — место (начиная с 1) студента в приватном лидерборде среди всех таких студентов.

Чтобы вас не пропустили при проверке решений соревнования, необходимо использовать следующий формат для имени команды (вкладка Team):

«Имя Фамилия номер_группы»

В течение 3 суток после окончания соревнования в соответствующее задание на anytask необходимо прислать код, воспроизводящий ответы для посылки, фигурирующей в приватном лидерборде. В случае отсутствия кода, воспроизводящего результат, в установленный срок студенту выставляется 0 в качестве оценки за соревнование. Если не оговорено иное, использовать любые внешние данные в соревнованиях запрещено. Под внешними данными понимаются размеченные данные, где разметка имеет прямое отношение к решаемой задаче. Грубо говоря, сборник текстов с википедии не считается внешними данными.

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

Контрольная работа состоится 18 мая на лекции в 11:10.

Вопросы для подготовки: https://docs.google.com/document/d/1s9NLSTWIgt00GK6IdRz-2fbAvxR6D9MLLc6ollmeyOo/edit?usp=sharing

Демо-вариант

На контрольной будет 4 вопроса. Два из них — по теории, где нужно будет объяснить одну из тем, разобранных на лекциях, или ответить на вопросы на понимание. Два вопроса — это задачи, примеры приведены ниже (но это просто для тренировки, список не исчерпывающий).

Примеры задач:

За КР всем 10!


________________________

UPD. Написание контрольной для тех, кто пропустил ее по уважительной причине, будет в среду (1 июня) в 11:00. Если вы планируете прийти, пожалуйста, заполните эту форму

Экзамен

Вопросы для подготовки к экзамену

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

22 июня (среда) в 11:00 мы пишем экзамен. Он будет длиться 2 часа (120 минут), все будет в зуме, правила действуют такие же, как и на контрольной.

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

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

Максимально близко к материалам курса: Специализация "Машинное обучение: от статистики до нейросетей" (речь про два курса: "Основы машинного обучения" и "Продвинутые методы машинного обучения")

Для тех, кто хочет подтянуть математику: Специализация "Математика для анализа данных"

Более сложная версия этого курса с ПМИ: Машинное обучение 1

Ещё материалы:

Статьи

Книги

  • Mohammed J. Zaki, Wagner Meira Jr. Data Mining and Analysis. Fundamental Concepts and Algorithms. Cambridge University Press, 2014.
  • Boris Mirkin. Core Concepts in Data Analysis: Summarization, Correlation, Visualization. 2010.
  • James, Witten, Hastie, Tibshirani. An Introduction to Statistical Learning. 2013.

Страницы прошлых лет

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

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

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

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

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

2015/16 учебный год