Как вкатиться в DS/ML через онлайн курсы

Как вкатиться в DS/ML через онлайн курсы

Субъективный обзор онлайн курсов

В общем прообещался запилить некий обзор на онлайн-курсы.

Вообще говоря занялся я этим делом чуть ранее, чем два года назад, где-то с декабря 2015.

Решив заделаться дата саентистом, я видел 3 основных направления, по которым мне так или иначе не хватало знаний:

1. Код. Хотелось уметь свободно писать на каком-то языке программирования, до этого имелся некий обрывочный опыт работы с C++, C#. Потом кстати выяснилось что-то что я называл С++ им уже по сути не являлось и никто так код не пишет.

2. Алгоритмы и структуры данных.

Разумеется, раз ты хочешь уметь писать эффективные реализации МЛ-пайплайнов, надо уметь обращаться и с этими маленькими кирпичиками

3. Собственно МЛ, статистика и прочее.


В принципе рассказывать буду в более-менее хронологическом порядке, хотя конечно проходил многое из нижеперечисленного параллельно.


1) Курс Andrew NG по машинке

https://www.coursera.org/learn/machine-learning/home/welcome

Хороший курс, преподователь является пионером MOOC и сооснователем курсеры. Все сильно жуется, задания можно делать не гугля что-то извне - все нужное есть. Что понравилось - явная реализация всех проходимых алгоритмов в матричном виде, доброжелательные лекции. Что не понравилось - MatLab stack, медленновато и в заданиях уже реализован интерфейс, что возможно не дает самому прочувствовать боль.

Очень многие начинали с этого курса, однако на настоящий момент НЕ РЕКОМЕНДУЮ его прохождение - матлаб да и в целом можно найти чего поактуальнее.

Альтернатива - стенфордский cs229. Однако сам не проходил.

http://cs229.stanford.edu/notes/


2) Курс Воронцова и ВШЭ по машинке

https://www.coursera.org/learn/vvedenie-mashinnoe-obuchenie/home/welcome

Жесткий курс, типично русская школа, а именно введение в предмет через БОЛЬ и УНИЖЕНИЕ. Проходить опираясь на материалы курса исключительно невозможно, хорошо бы уметь в питон и пандас к его началу. Вообще создалось впечатление, что курс все равно что перессказ шадовских лекций в условиях дикой нехватки времени: очень обрывочно, быстро, без примеров.

Из плюсов - хорошие задания, особенно последнее про прогноз победителя в Доте-2. Подходит, если уже закончивал аналогичный курс, в целом НЕ РЕКОМЕНДУЮ.


3)Специализация МФТИ и YandexDataFactory

https://www.coursera.org/learn/stats-for-data-analysis

https://github.com/demidovakatya/mashinnoye-obucheniye

В отличие от вышеупомянутого курса Воронцова в данной специализации довольно гладкое введение в предмет, при этом не создается впечатление халявы. Юпитер Ноутбуки с этой спецухи периодически используются в быту. Состоит из 6 курсов

- Математика и Python для анализа данных - кратенько матан, матрицы, оптимизация, тервер и ЦПТ. К слову ЦПТ понял только после этого курса.

- Обучение на размеченных данных. Собственно классические классификаторы, регрессоры и все такое.

- Обучение на неразмеченных данных. Визуализация данных, кластеризация, понижение размерности, SVD, PCA, аномалии. В конце курса занятный пример на тематическое моделирование с использование BigARTM и еще чего-то не помню)

- Построение выводов по данным. Статистика всякая: доверительные интервалы, бутстреп, параметрические и непараметрические тесты, аб тестинг. Один из самых полезных и нетривиальных курсов серии.

- Прикладные задачи анализа данных. Классические временные ряды(ARIMA, SARIMA, etc), аудиторные метрики, совсем-совсем введение в анализ текстов и изображений. Ну и снова про матричные разложения, в этот раз в контексте рекомендательных систем.

- Финальный проект. Ставят задачу - доводишь до конца.

Всюду Python stack. Имхо должно хватить чтобы более-менее погрузиться, дальше навык надо нарабатывать. Ну и доосознать то что сделал.

Очень сильно рекомендую. Отличные преподователи, особенно Соколов и Рябенко.


4) Открытый курс OpenDataScience и Mail.Ru Group

https://habrahabr.ru/company/ods/blog/344044/

ODS - это крупнейшее русскоязычное сообщество по анализу данных, насчитывающее к текущему моменту порядка 12 тысяч участников. Курс абсолютно бесплатный, стартует раз в полгода, все материалы и задания доступны по ссылкам выше, есть планы по выводу курса на мировую аудиторию.

Проходить можно и не оффициально, однако теряется возможность проверки заданий.

Очень рекомендую, темы очень практичные.


5) Data mining in action:

http://datamininginaction.ru/

Курс от авторов специализации МФТИ. Очень хорошие отзывы.

Резюмируя, курсы 3-5 несколько дублируют друг друга, так что достаточно пройти любой из них, но обязательно до конца. Сам прошел только МФТИшный.


6) Стенфордские курсы

Классические университетские курсы, очень всем рекомендую

https://see.stanford.edu/course/cs229 - вышеупомянутый курс по ML
http://cs231n.stanford.edu/ - глубинное обучение в компьютерном зрении
http://web.stanford.edu/class/cs224n/ - глубинное обучение в анализе текстов


7) Специализация по алгоритмам от SanDiego & Yandex.

https://www.coursera.org/specializations/data-structures-algorithms

Хороший курс, особенно, если вас не бесит лютый акцент русских эмигрантов. В числе лекторов Миша Левин, он крутой. Куча задачек, можно сдавать на огромном стеке языков, единственно на питоне не всегда получается эффективная реализация и мне приходилось переписывать на плюсах.

Прошел первые 2 курса, но и остальные судя по всему достаточно хорошие. Рекомендую, кто хочет попрактиковаться в написании кода ну и для знания базовых алгоритмов.

Альтернатива - знаменитое вот:

https://www.coursera.org/learn/algorithms-part1


8) Deep Learning Specialization

https://www.coursera.org/specializations/deep-learning

Теперь уже целая специализация от Andrew Ng. В том же стиле - интересная, ненапряжная, все понятно. Все также нужно реализовывать множество матричных вычислений, но теперь уже в питоне. Объясняется все в тихом размеренном темпе, постепенно добираясь и до более глубоких вещей, сопровождая в мир нейронок от back propogation до реккурентных и сверточных сетей.
Из минусов - довольно простые практические задания.
В целом хороший курс для введения, советую.


9) Хороший курс по плюсам от яндекса и МФТИ

https://www.coursera.org/learn/c-plus-plus-white

Сам не проходил но пресса хорошая


10)Хороший курс по промышленному питону от mailru и МФТИ

https://www.coursera.org/learn/programming-in-python

Чуть проходил, хороший, в том числе как готовить многопоточные и параллельные приложения на питоне.


Также отмечу, что сдавать все добро в Курсере можно бесплатно, прося финансовую помощь (это когда пишешь что ты живешь в бедной стране, все вокруг плохо, но хочу быть ДС/разрабом/маркетологом). Пишешь письмо, ждешь 15 дней и проходишь.

Также можно подписываться бесплатно только с просмотром видео, а домашки искать в сети на каких-нибудь гитхабах. Разумеется в таком случае никаких проверок и сертификатов.

Извне оставлю вот такие ссылки на гитхабы:

https://github.com/jupyter/jupyter/wiki/A-gallery-of-interesting-Jupyter-Notebooks

https://github.com/ageron/handson-ml

https://github.com/bulutyazilim/awesome-datascience

https://github.com/demidovakatya/vvedenie-mashinnoe-obuchenie

https://github.com/yandexdataschool

https://github.com/ujjwalkarn/Machine-Learning-Tutorials

https://lagunita.stanford.edu/