Анализ данных (Программная инженерия) — различия между версиями
Arbabenko (обсуждение | вклад) |
Arbabenko (обсуждение | вклад) |
||
(не показано 58 промежуточных версии 3 участников) | |||
Строка 1: | Строка 1: | ||
+ | '''Таблица результатов [https://docs.google.com/spreadsheets/d/1m6xUNu7Hq7-wi_G2527d4HAE_N03F74ryNKIs3zgEbQ/edit#gid=0 здесь]''' | ||
+ | |||
+ | '''Контакты: ''' cshse.ml@gmail.com | ||
+ | <br /> | ||
+ | <br /> | ||
== Краткое описание == | == Краткое описание == | ||
В курсе рассматриваются основные задачи анализа данных и обучения по прецедентам: классификация, кластеризация, регрессия, понижение размерности. Изучаются методы их решения, как классические, так и новые, созданные за последние 10–15 лет. Упор делается на практические аспекты применения изучаемых алгоритмов. Большое внимание уделяется практическим лабораторным работам на языке Python. | В курсе рассматриваются основные задачи анализа данных и обучения по прецедентам: классификация, кластеризация, регрессия, понижение размерности. Изучаются методы их решения, как классические, так и новые, созданные за последние 10–15 лет. Упор делается на практические аспекты применения изучаемых алгоритмов. Большое внимание уделяется практическим лабораторным работам на языке Python. | ||
== Отчётность по курсу и критерии оценки == | == Отчётность по курсу и критерии оценки == | ||
− | После каждой лекции студентам предлагается выполнить практическое задание на Python. В конце модуля пройдет | + | '''Оценка за курс.''' После каждой лекции студентам предлагается выполнить практическое задание на Python. В конце модуля пройдет устный экзамен по теории. Также в середине семестра будет проведен устный коллоквиум по теории. Итоговая оценка за курс складывается из оценок за практические задания, оценки за коллоквиум и оценки за экзамен. |
− | Итоговая оценка за курс складывается из оценок за практические задания и оценки за экзамен. | + | |
+ | '''Формальные критерии:''' | ||
+ | |||
+ | Оценки за различные активности: | ||
+ | * O<sub>theory</sub> - суммарная оценка за теоретические части лабораторных работ (max = 3 за одну лабораторную) | ||
+ | * O<sub>practice</sub> - суммарная оценка за практические части лабораторных работ (max = 5 за одну лабораторную) | ||
+ | * O<sub>colloquium</sub> - оценка за устный коллоквиум (max = 5) | ||
+ | * O<sub>exam</sub> - оценка за устный экзамен (max = 50) | ||
+ | |||
+ | Общее число баллов: | ||
+ | |||
+ | O<sub>all</sub> = 0.2 * O<sub>theory</sub> + 0.4 * O<sub>practice</sub> + 0.2 * O<sub>exam</sub> + O<sub>colloquium</sub> | ||
+ | |||
+ | Критерии оценки: | ||
+ | |||
+ | O<sub>max</sub> = max_possible_value_of(O<sub>all</sub>) | ||
+ | |||
+ | При подсчете O<sub>max</sub> не учитываются дополнительные баллы за задания со звездочкой. | ||
+ | |||
+ | '''Оценка 5''': O<sub>all</sub> >= 0.8 * O<sub>max</sub> | ||
+ | |||
+ | '''Оценка 4''': O<sub>all</sub> >= 0.6 * O<sub>max</sub> | ||
+ | |||
+ | '''Оценка 3''': O<sub>all</sub> >= 0.45 * O<sub>max</sub> | ||
+ | |||
+ | ''Критерии в 10-бальной шкале будут вывешены позднее. '' | ||
+ | |||
+ | За курс можно получить автомат без сдачи итогового экзамена. Для этого нужно получить максимальный балл за коллоквиум, а также суммарная оценка за лабораторные должна быть хорошей: | ||
+ | |||
+ | (0.2 * O<sub>theory</sub> + 0.4 * O<sub>practice</sub>) >= 0.9 * max_possible_value_of(0.2 * O<sub>theory</sub> + 0.4 * O<sub>practice</sub>) | ||
+ | |||
+ | Здесь при подсчете максимального значения опять же не учитываются баллы за задания со звездочкой. | ||
+ | |||
+ | '''Меры при обнаружении плагиата''' | ||
+ | |||
+ | ''Для лабораторных 1-7:'' | ||
+ | |||
+ | * По умолчанию всем, у кого обнаружен плагиат ставится 0 баллов и отметка о плагиате. И тем, кто списал, и тем, у кого списали. | ||
+ | * Из каждого онаруженного нами кластера людей, сдавших одинаковую работу, первый сдавший предполагается первоисточником работы и может получить за нее положительную оценку. Для этого он должен устно зачесть работу у преподавателя. Желательно обращаться именно к тому преподавателю, который проверял работу. При успешной защите своей работы со студента снимается отметка о плагиате. | ||
+ | |||
+ | ''Для всех последующих лабораторных:'' | ||
+ | |||
+ | * Всем, у кого обнаружен плагиат ставится 0 баллов и отметка о плагиате. И тем, кто списал, и тем, у кого списали. Мы не будем искать первоисточник работы. | ||
+ | Также Вы должны понимать, что плагиат будет иметь и другие последствия. При обнаружении плагиата у одного и того же человека более одного раза на него будет оформляться докладная на имя декана. | ||
+ | |||
+ | Если у человека есть хоть одна отметка о плагиате, он не может получить автомат. | ||
+ | |||
+ | '''Дедлайны.''' Решения присланные после дедлайнов не принимаются, кроме случаев наличия уважительных причин у студента (завалы на учебе или работе уважительными причинами не считаются). | ||
+ | |||
+ | == Коллоквиум == | ||
+ | |||
+ | На семинарах 7 и 12 марта пройдет коллоквиум. Каждый студент должен будет лично ответить преподавателю на несколько вопросов из списка ниже. | ||
+ | [https://www.dropbox.com/s/r4d2o4wtjydwo5e/questions.pdf?dl=0 Список вопросов] | ||
== Темы лекций == | == Темы лекций == | ||
− | '''Лекция 1. Основные понятия и примеры прикладных задач''' | + | '''Лекция 1. Основные понятия и примеры прикладных задач. Существующие инструменты анализа данных.''' |
+ | |||
Постановка задач обучения по прецедентам. Объекты и признаки. Типы шкал: бинарные, номинальные, порядковые, количественные. Типы задач: классификация, регрессия, прогнозирование, кластеризация. | Постановка задач обучения по прецедентам. Объекты и признаки. Типы шкал: бинарные, номинальные, порядковые, количественные. Типы задач: классификация, регрессия, прогнозирование, кластеризация. | ||
Основные понятия: модель алгоритмов, метод обучения, функция потерь и функционал качества, принцип минимизации эмпирического риска, обобщающая способность, скользящий контроль. | Основные понятия: модель алгоритмов, метод обучения, функция потерь и функционал качества, принцип минимизации эмпирического риска, обобщающая способность, скользящий контроль. | ||
− | Примеры прикладных задач. | + | Примеры прикладных задач. Популярные библиотеки и фреймворки для анализа данных на различных языках программирования. |
+ | |||
+ | [https://www.dropbox.com/s/p7kfijkrhq0kdwv/intro.pdf?dl=0 Слайды, часть 1] | ||
+ | [https://www.dropbox.com/s/me0q1njwonyrt06/instruments.pdf?dl=0 Слайды, часть 2] | ||
+ | |||
+ | '''Лекция 2. Метрическая классификация.''' | ||
+ | Метрические алгоритмы классификации. Метод ближайших соседей (kNN) и его обобщения. Подбор числа k по критерию скользящего контроля. Обобщённый метрический классификатор, понятие отступа. Проклятие размерности. Методы быстрого поиска ближайших соседей. | ||
+ | |||
+ | [https://www.dropbox.com/s/vlmifieu79liq1p/metric.pdf?dl=0 Слайды, часть 1] | ||
+ | [https://www.dropbox.com/s/g9g6ib8icygik2j/metric2.pdf?dl=0 Слайды, часть 2] | ||
+ | |||
+ | '''Лекция 3. Логическая классификация.''' | ||
+ | Логические закономерности и решающие деревья.
Понятие логической закономерности. Определение информативности. Разновидности закономерностей: шары, гиперплоскости, гиперпараллелепипеды (конъюнкции). Бинаризация признаков, алгоритм выделения информативных зон. «Градиентный» алгоритм синтеза конъюнкций, частные случаи: жадный алгоритм, стохастический локальный поиск, стабилизация, редукция. Решающее дерево. Псевдокод: жадный алгоритм ID3. Недостатки алгоритма и способы их устранения. Проблема переобучения. Редукция решающих деревьев: предредукция и постредукция. | ||
+ | |||
+ | [https://www.dropbox.com/s/9qfmw95wlw26jvb/slides-Logic1_ml_hse.pdf?dl=0 Слайды] | ||
+ | |||
+ | '''Лекция 4. Линейные методы классификации.''' | ||
+ | Линейные алгоритмы классификации. Квадратичная функция потерь, метод наименьших квадратов. Метод стохастического градиента и частные случаи: перcептрон Розенблатта, правило Хэбба. Недостатки метода стохастического градиента и способы их устранения. Ускорение сходимости, «выбивание» из локальных минимумов. Проблема переобучения, редукция весов (weight decay). | ||
+ | |||
+ | [https://www.dropbox.com/s/hj0ao16hh7n2bso/lec4.pdf?dl=0 Слайды] | ||
+ | |||
+ | '''Лекция 5. Линейный SVM.''' | ||
+ | |||
+ | [https://www.dropbox.com/s/xvdaoilxu71bz65/lec5.pdf?dl=0 Слайды] | ||
+ | |||
+ | '''Лекция 6. Ядерный SVM.''' | ||
+ | |||
+ | '''Лекция 7. Линейная регрессия и PCA.''' | ||
+ | Методы восстановления регрессии. Задача восстановления регрессии, метод наименьших квадратов. Многомерная линейная регрессия. Сингулярное разложение. Регуляризация: гребневая регрессия и лассо Тибширани. Метод главных компонент и декоррелирующее преобразование. | ||
+ | |||
+ | [https://www.dropbox.com/s/dsgfrs0jo3grbci/slides-Regression.pdf?dl=0 Слайды] | ||
+ | |||
+ | '''Лекции 8-9. Байесовская классификация.''' | ||
+ | |||
+ | [https://www.dropbox.com/s/rc5d97y7wttx7a0/slides-Bayes.pdf?dl=0 Слайды] | ||
+ | |||
+ | '''Лекции 12. Выбор моделей и отбор признаков.''' | ||
+ | |||
+ | [https://www.dropbox.com/s/7qchphf7ka7va2u/lec12.pdf?dl=0 Слайды] | ||
+ | |||
+ | '''Лекции 13. Кластеризация.''' | ||
+ | [https://www.dropbox.com/s/3t3vvyvlk0eihoo/slides-Clustering.pdf?dl=0, Слайды] | ||
+ | |||
+ | '''Лекции 14. Композиции алгоритмов.''' | ||
+ | [https://www.dropbox.com/s/8cy5pfgz1gg1na6/lec14.pdf?dl=0, Слайды] | ||
+ | |||
+ | '''Лекции 15. Нейронные сети.''' | ||
+ | [https://www.dropbox.com/s/dfu7ykkj8psourh/slides-NeuralNets.pdf?dl=0, Слайды] | ||
+ | |||
+ | '''Лекции 16. Ранжирование.''' | ||
+ | [https://www.dropbox.com/s/4jz8k9ch10vuiyl/slides-Ranking.pdf?dl=0, Слайды] | ||
+ | |||
+ | '''Лекции 17. Коллаборативная фильтрация.''' | ||
+ | [https://www.dropbox.com/s/gc6umd44g86whn7/slides-Collaborative.pdf?dl=0, Слайды] | ||
+ | |||
+ | == Семинары == | ||
+ | === Правила сдачи заданий cеминаров === | ||
+ | * На семинарах выдаются практические лабораторные работы, которые можно сдавать на семинаре, либо по почте до дедлайна. | ||
+ | * Для групп, у который семинары проходят по субботам, дедлайн 9:00 следующей субботы. У групп с семинарами по четвергам дедлайн 9:00 следующего четверга. | ||
+ | * Решения следует отправлять на почту курса с соответствующей темой письма (см. раздел Оформление писем). | ||
+ | * Решения принимаются в виде одного аккуратно оформленного ipython-notebook'а (.ipynb-файл), либо в виде аккуратного pdf-файла + скриптов. | ||
+ | * Для теоретических заданий предполагается развернутый ответ (с доказательством при необходимости). | ||
+ | * По каждому практическому заданию помимо формального ответа на вопрос и соответствующего кода необходимо так же дать комментарии/построить графики при необходимости и сделать выводы. | ||
+ | === Семинар 1. Инструментарий === | ||
+ | Знакомство с языком Python. | ||
+ | [https://www.dropbox.com/s/bx6hrz7pb61l9ab/ML_HSE_Lab1.pdf?dl=0 Лабораторная 1], [https://www.dropbox.com/s/y1kfgpiwbgjeisl/train.csv?dl=0 данные]. | ||
+ | |||
+ | [http://nbviewer.ipython.org/gist/anonymous/fba8bf7f1ad379df9d63 Материал] в помощь. | ||
+ | === Семинар 2. Проклятие размерности. Метод ближайшего соседа === | ||
+ | [https://www.dropbox.com/s/fc2kd7pp3no0s0t/practice.pdf?dl=0 Задание], [https://www.dropbox.com/s/xuse7r13f5cls6a/new_york.txt?dl=0 данные о ресторанах] ([https://www.dropbox.com/s/yejtu3y4ixt3tzl/features.txt?dl=0 название признаков]). | ||
+ | |||
+ | === Семинар 3. Решающие деревья === | ||
+ | [https://www.dropbox.com/s/4qxzfmzko3k01fq/lab3.pdf?dl=0 Задание], [https://www.dropbox.com/s/8ronkxqj087mxbe/adult.data?dl=0 данные], [https://www.dropbox.com/s/42a5gb3tw4dc3mi/adult.names?dl=0 названия признаков]. | ||
+ | |||
+ | [http://ogrisel.github.io/scikit-learn.org/sklearn-tutorial/auto_examples/tutorial/plot_knn_iris.html Туториал по визуализации] | ||
+ | |||
+ | === Семинар 4. Линейные методы классификации === | ||
+ | [https://www.dropbox.com/s/8aopczz722klmya/lab4.pdf?dl=0 Задание], [https://www.dropbox.com/s/vn6g2dceepropd5/train.csv?dl=0 train.csv] и [https://www.dropbox.com/s/qtiu368pq2c33ea/test.csv?dl=0 test.csv]. | ||
+ | |||
+ | === Семинар 5. Линейный SVM === | ||
+ | [https://www.dropbox.com/s/kbkhk4z5pagsrne/lab5.pdf?dl=0 Задание], [https://www.dropbox.com/s/5ro58pbpdf2iwoq/data.zip?dl=0 Данные] | ||
+ | |||
+ | === Семинар 6. Ядерный SVM === | ||
+ | [https://www.dropbox.com/s/bspfulrpj180da8/lab6.pdf?dl=0 Задание] | ||
+ | |||
+ | === Семинар 7. PCA + регрессия === | ||
+ | [https://www.dropbox.com/s/d63lww92hdtf35z/lab7.pdf?dl=0 Задание], [https://www.dropbox.com/s/ngxt79hdgqtqet8/data.zip?dl=0 Данные] | ||
+ | |||
+ | === Семинар 9. Параметрическая Байесовская классификация === | ||
+ | [https://www.dropbox.com/s/8u1cyn0fdbdrtdp/lab9.pdf?dl=0 Задание], [https://www.dropbox.com/s/r13rvv047j6lthl/2d.zip?dl=0 Данные1], [https://www.dropbox.com/s/9sh0rn0v74jep0m/200d.zip?dl=0 Данные2] | ||
+ | |||
+ | === Семинар 10. Разделение смеси распределений === | ||
+ | [https://www.dropbox.com/s/fcelgz2vicnddsf/lab10.pdf?dl=0, Задание], [https://www.dropbox.com/s/c6z8xexubmbixi8/mnist.zip?dl=0, Данные] | ||
+ | |||
+ | === Семинар 12. Оценивание моделей === | ||
+ | [https://www.dropbox.com/s/oy8c32jnv8oo3si/sem12.pdf?dl=0, Задачи с семинара] | ||
+ | |||
+ | === Семинар 13. Кластеризация === | ||
+ | Дедлайны: | ||
+ | |||
+ | Группы Артема и Ани: теория 25.04 09:00, практика 2.05 09:00. | ||
+ | |||
+ | Группы Сергея: теория 30.04 09:00, практика 7.05 09:00. | ||
+ | |||
+ | [https://www.dropbox.com/s/zgq88loq09bzbbm/lab13.pdf?dl=0 Задание], [https://www.dropbox.com/s/4snv7gpc1l5je9q/parrots.jpg?dl=0 parrots.jpg], [https://www.dropbox.com/s/9ilrbbdz74pvne0/grass.jpg?dl=0 grass.jpg]. | ||
+ | [https://www.dropbox.com/s/fiy2u04o3g0eea2/problems_hse.pdf?dl=0, Теоретические задачи] | ||
+ | |||
+ | === Семинар 14. Композиции классификаторов === | ||
+ | [https://www.dropbox.com/s/y0von4yb7iamxuf/sem14.pdf?dl=0, Задачи с семинара] | ||
+ | |||
+ | |||
+ | === Семинар 15. Нейронные сети === | ||
+ | [https://www.dropbox.com/s/fh2frujzaz0gz9w/lab15.pdf?dl=0, Лабораторная] | ||
+ | [https://www.dropbox.com/s/bcfthzhghnnglvy/mnist.zip?dl=0, Данные] | ||
+ | |||
+ | === Семинар 16. Ранжирование === | ||
+ | [https://www.dropbox.com/s/x2nulcih02l32qf/sem16.pdf?dl=0, Задачи с семинара] | ||
+ | |||
+ | === Семинар 17. Коллаборативная фильтрация === | ||
+ | [https://www.dropbox.com/s/sfyby2r9kugwhiv/lab17.pdf?dl=0, Лабораторная] | ||
+ | [https://www.dropbox.com/s/5as2k79dhajtw7n/data.zip?dl=0, Данные] | ||
+ | |||
+ | == Оформление писем == | ||
+ | Вопросы и домашние задания присылайте на почтовый адрес '''cshse.ml@gmail.com'''. | ||
+ | На почту присылайте письма со следующими темами: | ||
+ | * Для ''вопросов'' (общих, по лабораторным, по теории и т. д.): "Вопрос - Фамилия Имя Отчество - Группа" | ||
+ | * Для ''лабораторных'': "Лабораторная {Номер лабораторной работы} - Фамилия Имя Отчество - Группа (Семинарист)" | ||
+ | Когда отвечаете на наши письма или досылаете какие-то решения, пишите письма в '''тот же''' тред. | ||
+ | |||
+ | Большая просьба ко всем сдавать свои работы в ipython notebook, это очень упростит нам проверку. В качестве названия для файла с работой используйте свою фамилию на английском языке. Не нужно архивировать файлы перед отправкой. | ||
+ | == Полезные ссылки == | ||
+ | === Машинное обучение === | ||
+ | * [http://www.machinelearning.ru/wiki/index.php?title=Заглавная_страница machinelearning.ru] | ||
+ | * Одна из классических и наиболее полных книг по машинному обучению. [http://web.stanford.edu/~hastie/local.ftp/Springer/ESLII_print10.pdf Elements of Statistical Learning (Trevor Hastie, Robert Tibshirani, Jerome Friedman)] | ||
+ | === Python === | ||
+ | * [http://python.org Официальный сайт] | ||
+ | * Библиотеки: [http://www.numpy.org/ NumPy], [http://pandas.pydata.org/ Pandas], [http://scikit-learn.org/stable/ SciKit-Learn], [http://matplotlib.org/ Matplotlib]. | ||
+ | * Небольшой пример для начинающих: [http://nbviewer.ipython.org/gist/voron13e02/83a86f2e0fc5e7f8424d краткое руководство с примерами по Python 2] | ||
+ | * Питон с нуля: [http://nbviewer.ipython.org/gist/rpmuller/5920182 A Crash Course in Python for Scientists] | ||
+ | * Лекции [https://github.com/jrjohansson/scientific-python-lectures#online-read-only-versions Scientific Python] | ||
+ | * Книга: [http://www.cin.ufpe.br/~embat/Python%20for%20Data%20Analysis.pdf Wes McKinney «Python for Data Analysis»] | ||
+ | * [https://github.com/ipython/ipython/wiki/A-gallery-of-interesting-IPython-Notebooks Коллекция интересных IPython ноутбуков] | ||
+ | |||
+ | === Установка и настройка Python === | ||
+ | * [[Анализ данных (Программная инженерия)/Установка и настройка Python#Windows|Windows]] | ||
+ | * [[Анализ данных (Программная инженерия)/Установка и настройка Python#Mac_OS|Mac OS]] | ||
+ | * [[Анализ данных (Программная инженерия)/Установка и настройка Python#Linux | Linux]] |
Текущая версия на 10:31, 30 мая 2015
Таблица результатов здесь
Контакты: cshse.ml@gmail.com
Содержание
- 1 Краткое описание
- 2 Отчётность по курсу и критерии оценки
- 3 Коллоквиум
- 4 Темы лекций
- 5 Семинары
- 5.1 Правила сдачи заданий cеминаров
- 5.2 Семинар 1. Инструментарий
- 5.3 Семинар 2. Проклятие размерности. Метод ближайшего соседа
- 5.4 Семинар 3. Решающие деревья
- 5.5 Семинар 4. Линейные методы классификации
- 5.6 Семинар 5. Линейный SVM
- 5.7 Семинар 6. Ядерный SVM
- 5.8 Семинар 7. PCA + регрессия
- 5.9 Семинар 9. Параметрическая Байесовская классификация
- 5.10 Семинар 10. Разделение смеси распределений
- 5.11 Семинар 12. Оценивание моделей
- 5.12 Семинар 13. Кластеризация
- 5.13 Семинар 14. Композиции классификаторов
- 5.14 Семинар 15. Нейронные сети
- 5.15 Семинар 16. Ранжирование
- 5.16 Семинар 17. Коллаборативная фильтрация
- 6 Оформление писем
- 7 Полезные ссылки
Краткое описание
В курсе рассматриваются основные задачи анализа данных и обучения по прецедентам: классификация, кластеризация, регрессия, понижение размерности. Изучаются методы их решения, как классические, так и новые, созданные за последние 10–15 лет. Упор делается на практические аспекты применения изучаемых алгоритмов. Большое внимание уделяется практическим лабораторным работам на языке Python.
Отчётность по курсу и критерии оценки
Оценка за курс. После каждой лекции студентам предлагается выполнить практическое задание на Python. В конце модуля пройдет устный экзамен по теории. Также в середине семестра будет проведен устный коллоквиум по теории. Итоговая оценка за курс складывается из оценок за практические задания, оценки за коллоквиум и оценки за экзамен.
Формальные критерии:
Оценки за различные активности:
- Otheory - суммарная оценка за теоретические части лабораторных работ (max = 3 за одну лабораторную)
- Opractice - суммарная оценка за практические части лабораторных работ (max = 5 за одну лабораторную)
- Ocolloquium - оценка за устный коллоквиум (max = 5)
- Oexam - оценка за устный экзамен (max = 50)
Общее число баллов:
Oall = 0.2 * Otheory + 0.4 * Opractice + 0.2 * Oexam + Ocolloquium
Критерии оценки:
Omax = max_possible_value_of(Oall)
При подсчете Omax не учитываются дополнительные баллы за задания со звездочкой.
Оценка 5: Oall >= 0.8 * Omax
Оценка 4: Oall >= 0.6 * Omax
Оценка 3: Oall >= 0.45 * Omax
Критерии в 10-бальной шкале будут вывешены позднее.
За курс можно получить автомат без сдачи итогового экзамена. Для этого нужно получить максимальный балл за коллоквиум, а также суммарная оценка за лабораторные должна быть хорошей:
(0.2 * Otheory + 0.4 * Opractice) >= 0.9 * max_possible_value_of(0.2 * Otheory + 0.4 * Opractice)
Здесь при подсчете максимального значения опять же не учитываются баллы за задания со звездочкой.
Меры при обнаружении плагиата
Для лабораторных 1-7:
- По умолчанию всем, у кого обнаружен плагиат ставится 0 баллов и отметка о плагиате. И тем, кто списал, и тем, у кого списали.
- Из каждого онаруженного нами кластера людей, сдавших одинаковую работу, первый сдавший предполагается первоисточником работы и может получить за нее положительную оценку. Для этого он должен устно зачесть работу у преподавателя. Желательно обращаться именно к тому преподавателю, который проверял работу. При успешной защите своей работы со студента снимается отметка о плагиате.
Для всех последующих лабораторных:
- Всем, у кого обнаружен плагиат ставится 0 баллов и отметка о плагиате. И тем, кто списал, и тем, у кого списали. Мы не будем искать первоисточник работы.
Также Вы должны понимать, что плагиат будет иметь и другие последствия. При обнаружении плагиата у одного и того же человека более одного раза на него будет оформляться докладная на имя декана.
Если у человека есть хоть одна отметка о плагиате, он не может получить автомат.
Дедлайны. Решения присланные после дедлайнов не принимаются, кроме случаев наличия уважительных причин у студента (завалы на учебе или работе уважительными причинами не считаются).
Коллоквиум
На семинарах 7 и 12 марта пройдет коллоквиум. Каждый студент должен будет лично ответить преподавателю на несколько вопросов из списка ниже. Список вопросов
Темы лекций
Лекция 1. Основные понятия и примеры прикладных задач. Существующие инструменты анализа данных.
Постановка задач обучения по прецедентам. Объекты и признаки. Типы шкал: бинарные, номинальные, порядковые, количественные. Типы задач: классификация, регрессия, прогнозирование, кластеризация. Основные понятия: модель алгоритмов, метод обучения, функция потерь и функционал качества, принцип минимизации эмпирического риска, обобщающая способность, скользящий контроль. Примеры прикладных задач. Популярные библиотеки и фреймворки для анализа данных на различных языках программирования.
Слайды, часть 1 Слайды, часть 2
Лекция 2. Метрическая классификация. Метрические алгоритмы классификации. Метод ближайших соседей (kNN) и его обобщения. Подбор числа k по критерию скользящего контроля. Обобщённый метрический классификатор, понятие отступа. Проклятие размерности. Методы быстрого поиска ближайших соседей.
Слайды, часть 1 Слайды, часть 2
Лекция 3. Логическая классификация. Логические закономерности и решающие деревья. Понятие логической закономерности. Определение информативности. Разновидности закономерностей: шары, гиперплоскости, гиперпараллелепипеды (конъюнкции). Бинаризация признаков, алгоритм выделения информативных зон. «Градиентный» алгоритм синтеза конъюнкций, частные случаи: жадный алгоритм, стохастический локальный поиск, стабилизация, редукция. Решающее дерево. Псевдокод: жадный алгоритм ID3. Недостатки алгоритма и способы их устранения. Проблема переобучения. Редукция решающих деревьев: предредукция и постредукция.
Лекция 4. Линейные методы классификации. Линейные алгоритмы классификации. Квадратичная функция потерь, метод наименьших квадратов. Метод стохастического градиента и частные случаи: перcептрон Розенблатта, правило Хэбба. Недостатки метода стохастического градиента и способы их устранения. Ускорение сходимости, «выбивание» из локальных минимумов. Проблема переобучения, редукция весов (weight decay).
Лекция 5. Линейный SVM.
Лекция 6. Ядерный SVM.
Лекция 7. Линейная регрессия и PCA. Методы восстановления регрессии. Задача восстановления регрессии, метод наименьших квадратов. Многомерная линейная регрессия. Сингулярное разложение. Регуляризация: гребневая регрессия и лассо Тибширани. Метод главных компонент и декоррелирующее преобразование.
Лекции 8-9. Байесовская классификация.
Лекции 12. Выбор моделей и отбор признаков.
Лекции 13. Кластеризация. Слайды
Лекции 14. Композиции алгоритмов. Слайды
Лекции 15. Нейронные сети. Слайды
Лекции 16. Ранжирование. Слайды
Лекции 17. Коллаборативная фильтрация. Слайды
Семинары
Правила сдачи заданий cеминаров
- На семинарах выдаются практические лабораторные работы, которые можно сдавать на семинаре, либо по почте до дедлайна.
- Для групп, у который семинары проходят по субботам, дедлайн 9:00 следующей субботы. У групп с семинарами по четвергам дедлайн 9:00 следующего четверга.
- Решения следует отправлять на почту курса с соответствующей темой письма (см. раздел Оформление писем).
- Решения принимаются в виде одного аккуратно оформленного ipython-notebook'а (.ipynb-файл), либо в виде аккуратного pdf-файла + скриптов.
- Для теоретических заданий предполагается развернутый ответ (с доказательством при необходимости).
- По каждому практическому заданию помимо формального ответа на вопрос и соответствующего кода необходимо так же дать комментарии/построить графики при необходимости и сделать выводы.
Семинар 1. Инструментарий
Знакомство с языком Python. Лабораторная 1, данные.
Материал в помощь.
Семинар 2. Проклятие размерности. Метод ближайшего соседа
Задание, данные о ресторанах (название признаков).
Семинар 3. Решающие деревья
Задание, данные, названия признаков.
Семинар 4. Линейные методы классификации
Задание, train.csv и test.csv.
Семинар 5. Линейный SVM
Семинар 6. Ядерный SVM
Семинар 7. PCA + регрессия
Семинар 9. Параметрическая Байесовская классификация
Семинар 10. Разделение смеси распределений
Семинар 12. Оценивание моделей
Семинар 13. Кластеризация
Дедлайны:
Группы Артема и Ани: теория 25.04 09:00, практика 2.05 09:00.
Группы Сергея: теория 30.04 09:00, практика 7.05 09:00.
Задание, parrots.jpg, grass.jpg. Теоретические задачи
Семинар 14. Композиции классификаторов
Семинар 15. Нейронные сети
Семинар 16. Ранжирование
Семинар 17. Коллаборативная фильтрация
Оформление писем
Вопросы и домашние задания присылайте на почтовый адрес cshse.ml@gmail.com. На почту присылайте письма со следующими темами:
- Для вопросов (общих, по лабораторным, по теории и т. д.): "Вопрос - Фамилия Имя Отчество - Группа"
- Для лабораторных: "Лабораторная {Номер лабораторной работы} - Фамилия Имя Отчество - Группа (Семинарист)"
Когда отвечаете на наши письма или досылаете какие-то решения, пишите письма в тот же тред.
Большая просьба ко всем сдавать свои работы в ipython notebook, это очень упростит нам проверку. В качестве названия для файла с работой используйте свою фамилию на английском языке. Не нужно архивировать файлы перед отправкой.
Полезные ссылки
Машинное обучение
- 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 ноутбуков