Как вкатиться в 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:
Курс от авторов специализации МФТИ. Очень хорошие отзывы.
Резюмируя, курсы 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/