Методы машинного обучения (Прикладная политология)
Содержание
О курсе
Курс читается для студентов 1-го курса программы «Прикладная политология» в 2–3 модулях.
Лектор: Эльвира Альбертовна Зиннурова (tg)
Семинарист: Алексей Алексеевич Панков (tg)
Ассистент: Полина Ревина (tg)
Занятия проходят по вторникам, 18:10 — 21:00, ауд. 320а (ул. Мясницкая, 11).
Полезные ссылки
Репозиторий с материалами на GitHub
Чат в telegram для обсуждений и вопросов: https://t.me/joinchat/Cns_2hbF6c8B3cOx_olT0Q
Вопросы по курсу можно задавать в чате по ссылке выше, а также в телеграм преподавателям и ассистенту.
Правила выставления оценок
В курсе предусмотрено несколько форм контроля знания:
- Самостоятельные работы на семинарах, проверяющие знание основных фактов с лекций
- Практические домашние работы на Python
- Проект
- Коллоквиум
- Письменный экзамен
Итоговая оценка вычисляется на основе оценки за работу в семестре и оценки за экзамен:
Итог = Округление(0.1 * ПР + 0.2 * ДЗ + 0.2 * Проект + 0.2 * Кол + 0.3 * Э)
ПР — средняя оценка за самостоятельные работы на семинарах
ДЗ — средняя оценка за практические домашние работы на Python
Проект — оценка за проект
Кол — оценка за коллоквиум
Э — оценка за экзамен
Округление арифметическое.
Правила сдачи заданий
При обнаружении плагиата в любом виде работ оценки за работу обнуляются всем задействованным в списывании студентам, а также подаётся докладная записка в деканат. Следует помнить, что при повторном списывании деканат имеет право отчислить студента.
При наличии уважительной причины пропущенную работу можно написать позднее, а дедлайн по домашнему заданию может быть перенесён. Дедлайн по домашнему заданию переносится на количество дней, равное продолжительности уважительной причины. Решение о том, является ли причина уважительной, принимает исключительно учебный офис.
Лекции
Лекция 1. (29 октября) Введение в машинное обучение, основные термины. [Слайды]
Лекция 2. (5 ноября) Типы задач и признаков. Понятие вектора, матрицы. Гипотеза компактности, метод k ближайших соседей. [Слайды]
Лекция 3. (12 ноября) Основные понятия линейной алгебры. Оценки обобщающей способности. Метод k ближайших соседей. [Слайды]
Лекция 4. (19 ноября) Линейная регрессия. Произведение матриц, производная, градиент, экстремумы. Основные понятия линейной алгебры. Оценки обобщающей способности. Метод k ближайших соседей. [Слайды]
Лекция 5. (26 ноября) Основные понятия линейной алгебры. Оценки обобщающей способности. Метод k ближайших соседей. [Слайды]
Лекция 6. (3 декабря) Линейная классификация. Пороговая функция потерь, верхние оценки. Логистическая регрессия. предсказание вероятностей. [Слайды]
Лекция 7. (10 декабря) Метрики оценки качества регрессии и классификации. ROC- и PR-кривые. [Слайды]
Лекция 8. (17 декабря) Консультация по пройденному материалу.
Лекция 9. (14 января) Консультация по пройденному материалу.
Лекция 10. (21 января) Консультация по пройденному материалу. Гиперпараметры, многоклассовая классификация. [Слайды]
Лекция 11. (28 января) Решающие деревья. [Слайды]
Лекция 12. (4 февраля) Случайные леса. [Слайды]
Лекция 13. (11 февраля) Градиентный бустинг. [Слайды]
Семинары
Семинар 1. (29 октября) Библиотека NumPy, решение задач. [Ноутбук]
Семинар 2 (5 ноября) Pandas, работа с таблицами. [Тетрадь на Гитхабе] [Тетрадь в одном архиве с данными]
Семинар 3 (12 ноября) Matplotlib, приемы и ошибки визуализации. [Гитхаб], [Колаб].
Семинар 4 (19 ноября) Sklearn. Метрические методы. Подбор гиперпараметра KNN [Гитхаб], [Колаб].
Семинар 5 (26 ноября) Операции с векторами и матрицами. Производные [Колаб].
Семинар 6 (3 декабря) Градиентный спуск. Линейная регрессия [Колаб].
Семинар 7 (10 декабря) Линейные классификаторы [Колаб].
Семинар 8 (17 декабря) Метрики качества [Колаб].
Семинар 11 (29 января) Работа с текстовыми данными [Колаб]
Семинар 12 (12 февраля) Деревья решений [Колаб]
Семинар 13 (19 февраля) Бэггинг и бустинг [Колаб] [Визуализации]
Семинар 14 (2 марта) Бустинг [Колаб]
Семинар 15 (16 марта) Кластеризация и методы понижения размерности [Колаб] [Проверочная]
Семинар 16 (23 марта) Нейронные сети [Колаб]
Практические задания
ДЗ 1 (до 23 декабря) Задачи машинного обучения. Pandas и Matplotlib [GitHub]
ДЗ 2 (до 22 февраля) Логистическая регрессия. [GitHub]
ДЗ 3 (до 20 марта) Случайный лес. [GitHub], [Колаб]
Проект
Дедлайн: 23:59MSK 15.03.2020
Проект представляет собой некоторую задачу, которую нужно поставить и решить при помощи машинного обучения. Результатом выполнения проекта является архив с Jupyter-тетрадью и всеми необходимыми дополнительными файлами. Тетрадь должна представлять собой полноценный отчет, включающий как развернутые словесные описания датасета, задачи и выполняемых действий, так и код, выполняющий необходимые преобразования.
Тетрадь должна включать в себя следующие этапы решения задачи:
1. Получение обучающей выборки в табличном виде (1 балл)
В рамках этого этапа можно как найти некоторые готовые табличные данные, так и получить данные самостоятельно из некоторого источника при помощи парсинга, однако во втором случае студенту может быть начислено до 2 бонусных баллов за проект. Ограничение на данные — в выборке должно присутствовать не менее 2000 различных объектов. Данные с меньшим количеством объектов также можно рассмотреть, но датасет должен быть согласован с преподавателями.
2. Постановка задачи (1 балл)
Этот этап включает в себя определение того, что в задаче является объектами и ответами, а также определение итоговой метрики качества в задаче.
3. Визуализация (3 балла)
Минимальный объем работ в рамках этого этапа — изучить зависимость целевой переменной от признаков в вашей задаче, найти наиболее значимые и незначимые признаки и обосновать с точки зрения здравого смысла, почему они являются таковыми. В процессе визуализации могут быть найдены и другие интересные зависимости, которые также стоит отразить в работе, за особо интересные могут быть начислены бонусные баллы.
4. Построение модели (4 балла)
Следующий этап — построение модели, необходимо использовать хотя бы 2 метода из пройденных в курсе для обучения модели (а также не забыть для каждой подобрать гиперпараметры). За построение моделей с выдающимся качеством на тестовой выборке также могут быть начислены бонусные баллы.
5. Оценка качества (1 балл)
Последний этап — оценка качества моделей из п. 4 при помощи метрики качества, выбранной в п. 2. Не забудьте, что качество должно оцениваться на выборке, не используемой при обучении, поэтому необходимо с самого начала «отрезать» тестовую выборку для этого пункта.
После выбора данных (вне зависимости от того, планируете вы брать готовые табличные данные или парсить их самостоятельно) и задачи, необходимо заполнить форму, предварительно убедившись при помощи таблицы, что ваши данные/задача не пересекается с чьей-то еще. При совпадении данных у нескольких студентов, оценка за работу выставляется только первому студенту, выбравшему эти данные или задачу, остальным студентам за работу выставляется 0. Итоговая оценка за проект не может быть выше 10 (даже с учетом бонусных баллов; излишек бонусных баллов можно перенести в оценки за домашние задания и проверочные). В процессе выполнения проекта есть возможность консультироваться с преподавателями и ассистентов по любым возникающим вопросам. Готовый архив необходимо сдать в систему Anytask.
Коллоквиум
Дата и место проведения: 29.02.2020, 15:10, ауд. 421
Коллоквиум проводится устно. Каждому студенту будет дано 2 теоретических вопроса (на вопросы нужно отвечать без подготовки и без использования каких-либо материалов; исчерпывающие ответы на эти вопросы будут оцениваться в 3 и 4 балла соответственно), и 1 задача (в процессе решения задачи можно использовать любые материалы; оценивается в 3 балла).
Список вопросов для подготовки (обратите внимание, что данный список вопросов следует воспринимать как перечень тем, а не как вопросы, которые будут использоваться непосредственно на коллоквиуме, — конкретные формулировки вопросов могут и будут отличаться).
Экзамен
Дата и место проведения: 20.06.2020, 12:00
Экзамен проводится устно через zoom (детали проведения можно найти в чате курса в telegram). Каждому студенту будет дано 2 теоретических вопроса (на вопросы нужно отвечать без подготовки и без использования каких-либо материалов; исчерпывающие ответы на эти вопросы будут оцениваться в 3 и 4 балла соответственно), и 1 задача (в процессе решения задачи можно использовать любые материалы; оценивается в 3 балла).
Список вопросов для подготовки (обратите внимание, что данный список вопросов следует воспринимать как перечень тем, а не как вопросы, которые будут использоваться непосредственно на коллоквиуме, — конкретные формулировки вопросов могут и будут отличаться).
Полезные материалы
Книги
- 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: Введение в машинное обучение, К.В. Воронцов