Анализ данных (Программная инженерия)
Таблица результатов здесь
Контакты: cshse.ml@gmail.com
Содержание
Краткое описание
В курсе рассматриваются основные задачи анализа данных и обучения по прецедентам: классификация, кластеризация, регрессия, понижение размерности. Изучаются методы их решения, как классические, так и новые, созданные за последние 10–15 лет. Упор делается на практические аспекты применения изучаемых алгоритмов. Большое внимание уделяется практическим лабораторным работам на языке Python.
Отчётность по курсу и критерии оценки
- Оценка за курс. После каждой лекции студентам предлагается выполнить практическое задание на Python. В конце модуля пройдет письменный экзамен по теории.
Итоговая оценка за курс складывается из оценок за практические задания и оценки за экзамен.
- Дедлайны. Решения присланные после дедлайнов не принимаются, кроме случаев наличия уважительных причин у студента (завалы на учебе или работе уважительными причинами не считаются).
Темы лекций
Лекция 1. Основные понятия и примеры прикладных задач. Существующие инструменты анализа данных.
Постановка задач обучения по прецедентам. Объекты и признаки. Типы шкал: бинарные, номинальные, порядковые, количественные. Типы задач: классификация, регрессия, прогнозирование, кластеризация. Основные понятия: модель алгоритмов, метод обучения, функция потерь и функционал качества, принцип минимизации эмпирического риска, обобщающая способность, скользящий контроль. Примеры прикладных задач. Популярные библиотеки и фреймворки для анализа данных на различных языках программирования.
Слайды, часть 1 Слайды, часть 2
Лекция 2. Метрическая классификация. Метрические алгоритмы классификации. Метод ближайших соседей (kNN) и его обобщения. Подбор числа k по критерию скользящего контроля. Обобщённый метрический классификатор, понятие отступа. Проклятие размерности. Методы быстрого поиска ближайших соседей.
Слайды, часть 1 Слайды, часть 2
Лекция 3. Логическая классификация.
Семинары
Правила сдачи заданий cеминаров
- На семинарах выдаются практические лабораторные работы, которые можно сдавать на семинаре, либо по почте до дедлайна.
- Для групп, у который семинары проходят по субботам, дедлайн 9:00 следующей субботы. У групп с семинарами по понедельникам дедлайн 9:00 следующего понедельника.
- Решения следует отправлять на почту курса с соответствующей темой письма (см. раздел Оформление писем).
- Решения принимаются в виде одного аккуратно оформленного ipython-notebook'а (.ipynb-файл), либо в виде аккуратного pdf-файла + скриптов.
- Для теоретических заданий предполагается развернутый ответ (с доказательством при необходимости).
- По каждому практическому заданию помимо формального ответа на вопрос и соответствующего кода необходимо так же дать комментарии/построить графики при необходимости и сделать выводы.
Семинар 1. Инструментарий
Знакомство с языком Python. Лабораторная 1, данные.
Материал в помощь.
Семинар 2. Проклятие размерности. Метод ближайшего соседа
Задание, данные о ресторанах (название признаков).
Семинар 3. Решающие деревья
Задание, данные, названия признаков.
Семинар 4. Линейные методы классификации
Задание, train.csv и test.csv.
Оформление писем
Вопросы и домашние задания присылайте на почтовый адрес cshse.ml@gmail.com. На почту присылайте письма со следующими темами:
- Для вопросов (общих, по лабораторным, по теории и т. д.): "Вопрос - Фамилия Имя Отчество - Группа"
- Для лабораторных: "Лабораторная {Номер лабораторной работы} - Фамилия Имя Отчество - Группа (Семинарист)"
Когда отвечаете на наши письма или досылаете какие-то решения, пишите письма в тот же тред.
Полезные ссылки
Машинное обучение
- machinelearning.ru
- Одна из классических и наиболее полных книг по машинному обучению. Elements of Statistical Learning (Trevor Hastie, Robert Tibshirani, Jerome Friedman)
Python
- Официальный сайт
- Библиотеки: NumPy, Pandas, SciKit-Learn, Matplotlib.
- Небольшой пример для начинающих: краткое руководство с примерами по Python 2
- Питон с нуля: A Crash Course in Python for Scientists
- Лекции Scientific Python
- Книга: Wes McKinney «Python for Data Analysis»
- Коллекция интересных IPython ноутбуков