Введение в анализ данных
Содержание
О курсе
Курс читается для студентов 2-го курса майнора ИАД в 3-4 модулях.
Проводится с 2015 года.
Лектор: Соколов Евгений Андреевич
Лекции проходят онлайн по средам в 11:10.
Полезные ссылки
Репозиторий с материалами на GitHub
Почта для сдачи домашних заданий (на самом деле задания сдаются в AnyTask, но если он не работает, то присылайте на почту): hse.minor.dm+<номер группы>@gmail.com (например, hse.minor.dm+3@gmail.com)
Канал в telegram для объявлений: https://t.me/hs_iad_2021
Чат в telegram для флуда: https://t.me/joinchat/Vuq4Lgi98RG22fQP
Ссылка на курс в Anytask: https://anytask.org/course/779
Таблица с оценками: https://docs.google.com/spreadsheets/d/13aZ9aQAqa0QUTniqAkPMlirWqPq6DfLwpIra2HJLwhk/edit?usp=sharing
Семинары
Группа | Преподаватель | Учебные ассистенты | Zoom-конференция | Ссылка на чат | Материалы семинаров | Инвайт в anytask |
---|---|---|---|---|---|---|
ИАД-1 | Илья Косарев | Саночкин Юрий, Пащенко Анатолий | Zoom | Чат | Материалы | GrodXoV |
ИАД-2 | Надежда Чиркова | Екатерина Кострыкина, Александра Штарёва | Zoom | Чат | Материалы | hHA6uvN |
ИАД-3 | Елена Кантонистова | Михаил Олейник, Никита Патов | Zoom | Чат | ewfZ2I8 | |
ИАД-4 | Артём Филатов | Валерий Айхенвальд, Анастасия Бир | Zoom | Чат | 4TUKO0v | |
ИАД-5 | Владимир Омелюсик | Аня Аксенова, Александр Габиташвили | Zoom | Чат | Материалы | Kre5emJ |
ИАД-6 | Ася Карпова | Елена Гринкевич, Егор Масликов | Zoom | Чат | nSuRKac | |
ИАД-7 | Тамерлан Таболов | Николай Аверьянов, Сергей Тихонов, Никита Крайко | Zoom | Чат | HO7xViO | |
БИ-1 | Антон Семёнкин | Дарья Морозова, Михаил Никифоров | Zoom | Чат | aQWW7It | |
БИ-2 | Илья Косарев | Гусева Полина, Такташева Екатерина | Zoom | Чат | Материалы | QFII7j8 |
Правила выставления оценок
В курсе предусмотрено несколько форм контроля знания:
- Самостоятельные работы на семинарах, проверяющие знание основных фактов с лекций и семинаров
- Практические домашние работы на Python
- Контрольная где-то в середине курса
- Письменный экзамен
Итоговая оценка вычисляется на основе оценки за работу в семестре и оценки за экзамен:
Oитоговая = Округление(0.4 * ДЗ + 0.1 * ПР + 0.2 * КР + 0.3 * Э)
ДЗ — средняя оценка за практические домашние задания
ПР — средняя оценка за письменные проверочные работы на семинарах
КР — оценка за контрольную работу
Э — оценка за экзамен
Округление арифметическое.
Правила сдачи заданий
За каждый день просрочки после мягкого дедлайна снимается 1 балл. После жёсткого дедлайна работы не принимаются. Даже при опоздании на одну секунду. Сдавайте заранее.
При обнаружении плагиата оценки за домашнее задание обнуляются всем задействованным в списывании студентам, а также подаётся докладная записка в деканат. Следует помнить, что при повторном списывании деканат имеет право отчислить студента.
При наличии уважительной причины пропущенную проверочную можно написать позднее, а дедлайн по домашнему заданию может быть перенесён. Дедлайн по домашнему заданию переносится на количество дней, равное продолжительности уважительной причины. Решение о том, является ли причина уважительной, принимает исключительно учебный офис.
Лекции
Лекция 1 (20.01.2021). Введение в машинное обучение и анализ данных. [Слайды] [Запись лекции]
Лекция 2 (27.01.2021). Основные постановки задач. Метод k ближайших соседей. Измерение ошибки в задачах классификации. [Слайды] [Запись лекции]
Лекция 3 (03.02.2021). Переобучение и обобщающая способность. Проверка обобщающей способности: отложенная выборка и кросс-валидация. Метод k ближайших соседей с весами. [Слайды] [Запись лекции]
Лекция 4 (10.02.2021). kNN для регрессии. Модель линейной регрессии. Подготовка данных для линейной регрессии. [Слайды] [Запись лекции]
Лекция 5 (17.02.2021). MSE для линейной регрессии в матричной форме. Аналитическая формула для оптимального вектора весов, её недостатки. Регуляризация линейных моделей. [Слайды] [Запись лекции]
Лекция 6 (24.02.2021). Интерпретация весов из линейной модели. Градиентый спуск. Мультистарт. Выбор длины шага. [Слайды] [Запись лекции]
Лекция 7 (3.03.2021). Стохастический градиентный спуск. Функции потерь в задачах регрессии. Линейный классификатор. Отступ. [Слайды] [Запись лекции]
Лекция 7.5 (в записи). Относительная ошибка в регрессии (MAPE, SMAPE). Метрики качества классификации: доля верных ответов, точность, полнота. Объединение точности и полноты, F-мера. [Слайды] [Запись лекции]
Лекция 8 (10.03.2021). Обучение линейных классификаторов через верхние оценки на функцию потерь. Метрики качества ранжирования: PR-кривая и ROC-кривая, площади под ними. [Слайды] [Запись лекции]
Лекция 9 (17.03.2021). Логистическая регрессия. Оценивание вероятностей. Логистическая функция потерь. [Слайды] [Запись лекции]
Лекция 10 (24.03.2021). Метод опорных векторов. Многоклассовая классификация. [Слайды] [Запись лекции]
Лекция 11 (07.04.2021). Решающие деревья. Поиск лучших предикатов и критерии информативности. Жадный алгоритм построения дерева. [Слайды] [Запись лекции]
Лекция 12 (14.04.2021). Неустойчивость решающих деревьев. Разложение ошибки на смещение и разброс. Бэггинг. Случайный лес. [Слайды] [Запись лекции]
Лекция 13 (21.04.2021). Градиентный бустинг. Последовательное обучение моделей на MSE. Общий вид градиентного бустинга. [Слайды] [Запись лекции]
Лекция 14 (12.05.2021). Градиентный бустинг. Регуляризация. Основные гиперпараметры. Вариации бустинга. [Слайды] [Запись лекции]
Лекция 15 (19.05.2021). Отбор признаков. Одномерные методы. Отбор на основе моделей. Метод главных компонент. [Слайды] [Запись лекции]
Лекция 16 (26.05.2021). Кластеризация. K-Means. DBSCAN. Представления слов. Тематическое моделирование. [Слайды] [Запись лекции]
Семинары
Семинар 1: pandas; основы работы с таблицами, вычисление статистик, устранение пропусков. [Ноутбук]
Семинар 2: numpy и основы линейной алгебры. [Ноутбук]
Семинар 3: Визуализация данных. [Ноутбук]
Семинар 4: Объектно-ориентированное программирование в Python. [Ноутбук]
Семинар 5: Введение в sklearn. KNN. [Ноутбук]
Семинар 6: Линейная регрессия, функции потерь регресии, регуляризация. [Ноутбук]
Семинар 7: Градиентный спуск. [Ноутбук]
Семинар 8: Линейная классификация. [Ноутбук]
Семинар 9: Логистическая регрессия и SVM. [Ноутбук]
Семинар 10: Обработка текстов. [Ноутбук]
Семинар 11: Калибровка вероятностей. [Ноутбук]
Семинар 12: Решающие деревья. [Ноутбук]
Семинар 13: Случайный лес. [Ноутбук]
Семинар 14: Бустинг, часть 1. [Ноутбук]
Семинар 15: Бустинг, часть 2. [Ноутбук]
Семинар 16: Задача понижения размерности. Генерация признаков. [Ноутбук]
Семинар 17: Кластеризация. [Ноутбук]
Практические задания
За каждый день просрочки после мягкого дедлайна снимается 1 балл. После жёсткого дедлайна работы не принимаются, но есть исключение. В течение семестра каждый студент может не более 2 раз сдать задание после жёсткого дедлайна — в этом случае за каждый день просрочки продолжает вычитаться по одному баллу (если не оговорено иное).
В некоторых группах домашние задания могут отличаться. Уточняйте у семинариста.
ДЗ 1. pandas
[Ноутбук для заполнения и данные]
Дедлайн: мягкий дедлайн 26 января 23:59, жесткий дедлайн 30 января 23:59.
ДЗ 2. numpy
Дедлайн: мягкий дедлайн 2 февраля 23:59, жёсткий дедлайн 6 февраля 23:59.
ДЗ 3. EDA и подготовка данных
Дедлайн: мягкий дедлайн 17 февраля 23:59, жёсткий дедлайн 21 февраля 23:59.
ДЗ 4. kNN и линейная регрессия
Дедлайн: мягкий дедлайн 10 марта 23:59, жёсткий дедлайн 14 марта 23:59.
ДЗ 5. Градиентный спуск
Дедлайн: мягкий дедлайн 6 апреля 23:59, жёсткий дедлайн 10 апреля 23:59.
ДЗ 6. Работа с текстами
Дедлайн: мягкий дедлайн 23 апреля 23:59, жёсткий дедлайн 28 апреля 23:59.
ДЗ 7. Деревья
Дедлайн: мягкий дедлайн 1 июня 23:59, жёсткий дедлайн 8 июня 23:59.
ДЗ 8. Бустинг и кластеризация
Дедлайн: мягкий дедлайн 16 июня 23:59, жёсткий дедлайн 19 июня 23:59.
Соревнования
Правила участия и оценивания
В соревновании по анализу данных вам предлагается по имеющимся данным решить некоторую задачу, оптимизируя указанную метрику, и отправить ответы для заданного тестового множества. Максимальное количество посылок в сутки ограничено (как правило, разрешается сделать 2 посылки), ближе к концу соревнования вам будем необходимо выбрать 2 посылки, которые вы считаете лучшими. Тестовые данные делятся на публичные и приватные в некотором соотношении, на основе которых строятся публичный и приватный лидерборды соответственно, при этом публичный лидерборд доступен в течение всего соревнования, а приватный строится после его окончания для выбранных вами посылок.
Студент, занявший в соревновании место i, получает оценку
10 - 10 * (i - 1) / M,
где M — количество студентов, принявших участие в соревновании;
i — место (начиная с 1) студента в приватном лидерборде среди всех таких студентов.
Чтобы вас не пропустили при проверке решений соревнования, необходимо использовать следующий формат для имени команды (вкладка Team):
«Имя Фамилия номер_группы»
В течение 3 суток после окончания соревнования в соответствующее задание на anytask необходимо прислать код, воспроизводящий ответы для посылки, фигурирующей в приватном лидерборде. В случае отсутствия кода, воспроизводящего результат, в установленный срок студенту выставляется 0 в качестве оценки за соревнование. Если не оговорено иное, использовать любые внешние данные в соревнованиях запрещено. Под внешними данными понимаются размеченные данные, где разметка имеет прямое отношение к решаемой задаче. Грубо говоря, сборник текстов с википедии не считается внешними данными.
Контрольная работа
Контрольная работа состоится 21 апреля на лекции в 11:10.
Вопросы для подготовки: https://docs.google.com/document/d/1RJ0P-XcpWRqmXW4mD9uSHKTJBcQiEp1nMoTCCqIO-Hg/edit?usp=sharing
На контрольной будет 4 вопроса. Два из них — по теории, где нужно будет объяснить одну из тем, разобранных на лекциях, или ответить на вопросы на понимание. Два вопроса — это задачи, примеры приведены ниже (но это просто для тренировки, список не исчерпывающий).
Примеры задач:
- Метрические методы, kNN [Примеры задач]
- Линейные методы [Примеры задач]
- Решающие деревья [Примеры задач]
- Метрики качества [Примеры задач]
Экзамен
Вопросы: https://docs.google.com/document/d/1VLDHSRsivy9KjzpBviErTq73rHpeRy_m1jXW6F_YFbg/edit?usp=sharing
Примеры задач прошлого года (также могут войти задачи из коллоквиума)
Полезные материалы
Курсы по машинному обучению и анализу данных
Максимально близко к материалам курса: Специализация "Машинное обучение: от статистики до нейросетей" (речь про два курса: "Основы машинного обучения" и "Продвинутые методы машинного обучения")
Для тех, кто хочет подтянуть математику: Специализация "Математика для анализа данных"
Более сложная версия этого курса с ПМИ: Машинное обучение 1
Ещё материалы:
- Курс по машинному обучению К.В. Воронцова
- Видеозаписи лекций курса Школы Анализа Данных, К.В. Воронцов
- Coursera: Машинное обучение и анализ данных (специализация)
- Coursera: Введение в машинное обучение, К.В. Воронцов
- Coursera: Machine Learning, Andrew Ng
Статьи
- An Introduction to Machine Learning Theory and Its Applications: A Visual Tutorial with Examples
- A Visual Introduction to Machine Learning
Книги
- 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.