Недавно от одного из слушателей специализации «Машинное обучение и анализ данных» от МФТИ и Яндекса поступило предложение составить список курсов, которые стоит пройти до/после/вместо этой специализации. Благодаря помощи коллективного разума удалось составить этот список.

Что стоит пройти ДО

Курс по Python

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

  • специализация Python for Everybody на Coursera (ныне платная, но можно запросить Financial Aid — матпомощь),
  • курс Introduction to Computer Science and Programming Using Python (6.00.1x) от MIT на edx (бесплатный) — очень крутой, даёт основы не только питона, но и в целом программирования и компьютер саенса,
  • после него можно пройти MIT 6.00.2x – Introduction to Computational Thinking and Data Science (тоже бесплатный). Этот курс познакомит вас с основами программирования на питоне уже в контексте машинного обучения, а также даст понимание основ теории вероятности и прочих крутых штук,
  • Программирование на Python на Stepic.org (бесплатный) — в отличие от предыдущих, этот курс на русском, подготовлен на базе программы Института биоинформатики. Адресован слушателям, которые ранее не имели опыта программирования, и не предполагает каких-либо специальных знаний по информатике.

Математика и статистика

Если что, не пугайтесь — глубокие знания матана, тервера или матстата вам не понадобятся, однако проходить специализацию (и сопутствующие курсы; и вообще развиваться и работать в этой области) будет намного проще, если ознакомиться с этими курсами:

На четвёртом курсе (Построение выводов по данным) всех ждёт интенсивнейшее погружение в статистику вместе с Евгением Рябенко, и без знания матстата будет тяжело. Посему рекомендую заранее подготовиться и послушать Основы статистики (и, как вариант, Основы статистики: Часть 2) на Степике.

Что делать ПОСЛЕ

После специализации рекомендую не ходить вокруг да около, а как можно скорее:

  1. Решать задачки на Kaggle (причем не туториалы типа Titanic, а реальные задачи);
  2. Запилить резюме и искать работу;
  3. Начать изучать продвинутые разделы ML/DS — например, нейросети, NLP, big data и т.д.
  • Mining massive datasets — про работу с очень большими объёмами данных, про подходящие для этого алгоритмы дата майнинга и машинного обучения и про соответствующие инструменты. В общем, что такое хадуп, мап редьюс, кластеризацию, пэйдж ранк, lsh, etc.
  • Стэнфордский курс по Natural Language Processing. Раньше он был на курсере, сейчас видеолекции доступны на youtube. По поводу заданий: link 1, link 2.
  • Серия курсов Data Science and Engineering with Apache Spark от Беркли посвящена таким вопросам — что такое Apache Spark, как он устроен и как его использовать для анализа данных и машинного обучения.
  • Нейронные сети — на мой взгляд, им в специализации отведено слишком мало времени. Вот неплохие курсы по этой теме:

Что стоит пройти дополнительно

Ну а если вдруг хочется послушать о том же самом, но с другого ракурса, есть:

  • Введение в машинное обучение от Высшей Школы Экономики — русскоязычный курс, хороший, но весьма интенсивный, с непростыми для понимания лекциями, которые читает К. Воронцов. Совсем новичку будет нелегко увязать лекции и (кстати, довольно интересные!) практические задания, но тем, кто немного шарит в машобуче, курс будет полезен;
  • Классика — стэнфордский Machine Learning от Andrew NG. Для того, чтобы пройти задания, потребуется Matlab или Octave, но их можно спокойно выполнять на питоне или R. За 11 недель весьма подробно рассказывается о том, как что работает в машинном обучении.

Однако не стоит слушать про одно и то же раз за разом — подтягивайте то, что вам реально нужно или интересно. А что именно нужно или интересно, помогут понять задачки с работы или соревнования на Kaggle. Не переобучайтесь!