data scientist программа обучения
Курсы и книги для изучения data science c нуля
В статье привожу курсы и книги, которые мне кажутся наиболее оптимальными для изучения машинного обучения/data science c нуля. Стараюсь привести список, который будет наиболее кратким и одновременно даст все знания, необходимые для начала работы на практике, без серьезных пробелов в знаниях.
Disclaimer
Понять исходя из чего составлены данные рекомендации можно прочитав предыдущие статьи, в которых описаны мой путь и принципы самообучения, а также общие соображения о том, как выстраивать этапы обучения:
Рекомендации данной статьи будут устаревать, и наверняка, и сейчас существуют отличные курсы и книги, которые могли бы в него входить. Но это, как минимум, одни из лучших материалов по своим темам. Для подготовки данного списка были отброшены десятки курсов и книг, которые тоже нацелены на обучение с нуля, но хуже излагают фундаментельные концепции.
Не привожу материалов о нейронных сетях потому что, в большинстве случаев, считаю неэффективным начинать изучение с них, или изучать их на ранних этапах самообучения.
Необходимые базовые навыки
Знание основ программирования: Python и SQL
Невозможно заниматься машинным обучением или data science не владея программированием в Python или R (Начинать лучше с Python). Также, подавляющее большинство вакансий в «классическом» машинном обучении (решение бизнес-задач, и работа с изначально числовыми/статистическими данными) потребует знание SQL. Базовые рекомендации по их изучению есть в статье Самообучение в Data science, с нуля до Senior за два года.
Математика
Также невозможно стать хорошим специалистом без достаточного уровня математики. Но, мне кажется, эффективнее изучать математику постепенно, предварительно знакомясь с теми целями в которых она применяется.
Тем не менее, есть определенный минимально-необходимый базовый уровень: понимание производных (школьная программа алгебры), понимание градиентного спуска (градиент, обычно, объясняют в начальных курсах математического анализа в университете, и объяснение есть также в курсах о машинном обучении), знания основ дискретной математики, теории вероятностей и статистики.
Основы теории вероятностей неплохо объяснены в специализации: Математика для анализа данных. Необходимый минимум теории вероятностей дан в последнем курсе специализации, который не требует знаний из 2 и 3 курсов. Курсы 2 и 3 дают знания, полезные для понимания градиентного спуска и для изучения нейронных сетей и некоторых других методов машинного обучения. По указанным темам мне очень нравится англоязычная специализация Math for machine learning, от London Imperial College.
Если у вас проблемы с пониманием производных и пределов (школьная программа, самые продвинутые её темы), то, если понимаете английский: крайне рекомендую все курсы от Robert Ghrist. Более интуитивное и наглядное объяснение математики я вообще не встречал. На русском поищите курсы на coursera.org, также неплохие бесплатные курсы по математике есть на stepik.org
Начальный уровень
Книги и статьи, рекомендуемый минимум
Данные статьи и курс дают отличные базовые знания и навыки для изучения основ машинного обучения. Также в статьях дан хороший список дополнительных материалов. По данным статьям существуют также лекции (лекции я не смотрел, т.к. статьи, субъективно, намного эффективнее). Для меня данные материалы стали отличным дополнение к он-лайн курсу Воронцова (ниже). Освоив курс и данные статьи долгое время мне хватало только отработки навыков применения данных методов, не изучая ничего сверх них. В этих статьях — тему 8 можно смело пропустить, по теме 2 — больше смотрите на seaborn и имейте в виде что синтаксис команд данных библиотек уже устарел (полезно научиться пользоваться официальной документацией, чтобы понять как такие вещи делать на практике).
Но, потенциально, эта книга может заменить оба источника выше. Или можно прочесть то же самое, другими словами, и закрепить материал.
Дополнительные печатные источники
Отмечу, все книги, написанные на английском, я изначально читал в оригинале. Не могу ручаться за качество перевода. И настоятельно рекомендую попробовать их осилить в оригинале, т.к. это даст необходимый уровень знаний языка, для чтение документации к программным библиотекам, которые придется использовать для использования данных методов. Подобная документация на русский вообще не переводится. Подобный базовый уровень получить легче, чем кажется.
Курсы
Необходимый минимум
Важно понимать в каких рамках можно доверять прогнозам, полученным разными моделями.
Альтернативные курсы
Возможно, курс Воронцова потребует сразу слишком много базовых или дополнительных знаний (умения работать с jupyter, pandas). В этом случае, возможно, проще будет сначала пройти следующую комбинацию курсов. Также, в чём-то специализация от Яндекса будет подробнее.
Специализация от Яндекс «Машинное обучение и анализ данных» (Если записываться на отдельные курсы и в последней форме при записи выбрать вариант «только аудит» то все занятия можно просмотреть бесплатно). В 3 курсе специализации,на первом этапе, можно осваивать только 1 неделю, о кластеризации. Остальные темы сложнее, и могут не пригодиться в первое время; можно просмотреть наискосок. Весь 4 курс, по началу погружения в специалиность, рекомендую просмотреть, чтобы было общее представление, но не обязательно досконально разбираться.. Эти вещи легко забываются, и не всем встречаются на пратике.
Отработка базовых навыков
Kaggle полезен сразу несколькии вещами: можно посмотреть разные реальные (и не очень) задачи, решаемые с помощью машинного обучения, и изучить пути решения, которые применяют другие спецалисты (и на этом сайте соревнуются в своих навыках в т.ч. топовые специалисты мировго уровня). У них также есть хорошие бесплатные мини-курсы по разным темам, в рамках которых, в том числе, можно отработать навыки на тестовых задачах.
Обязательно следует ознакомиться с документацией
В статьях сообщества ODS (см.выше) дано множество ссылок на дополнительные источники. Рекомендую с ними ознакомиться. Также, через сайт сообщества можно найти видеозаписи многих семинаров, в которых также иногда рассматриваются очень полезные и фундаментальные темы. Например, мне были полезны все выстпления от основателя сообщества, Алексея Натенкина (прогнозирование временных рядов, еще пример)
Разные смежные концепции, которые необходимо знать
С большой долей вероятности, если вы будете делать какой-нибудь сравнительный анализ различных групп (рекламных компаний, поведения людей и т.п.) вам придется столкнуться с парадоксом Симпсона (отличное видео). Важно отточить его понимание, т.к. от его последствий необходимо защищася, и даже зная о нём, я не всегда осозновал что встречаюсь с ним в практике.
Другие полезные книги/ материалы
Куча англоязычных статей по использованию разных библиотеке, в основном очень начального уровня, регулярно публикуется на сайте https://towardsdatascience.com; до 3 статей в месяц можно читать бесплатно.
Необходимые технические знания
Что я упустил?
Готов выступить ментором в самообучении
Посчитав, что мой опыт самообучения и быстрый рост доказывают эффективность отобранных мной подходов, книг и курсов, я решил заняться менторством.
В результате такого общения некоторые поняли, что им лучше уйти в другую сферу (программирование, биг дата), некоторым я смог скорректировать учебный/карьерный план под индивидуальные потребности, кому-то я посоветовал тех, кто сможет помочь лучше меня, а кого-то спас (?) от неэффективной траты времени на тупиковые проекты (решение задач в машинном обучении, без понимания принципов машинного обучения).
Как стать
специалистом по Data Science
Зарплата
специалиста по Data Science
Чему вы научитесь в Практикуме
За 8 месяцев обучения по 15 часов в неделю вы освоите востребованные навыки и соберёте портфолио. Вот какие проекты в него войдут:
Как выглядит процесс обучения
Обучение поделено на двухнедельные отрезки — спринты. Каждый спринт вы изучаете одну тему, закрепляете её на практике, сдаёте самостоятельную работу, а затем переходите к следующей теме.
Онлайн-тренажёр
С первого дня вы учитесь на практике. Мы даём знания небольшими частями, которые нужно сразу применить, написав собственный код в онлайн-тренажёре.
Самостоятельная работа
Тренажёр — это только часть обучения. Основные навыки вы приобретете по мере решения задач инструментами профессиональных разработчиков, а код-ревьюер даст вам обратную связь.
Поддержка
Команда наставников проверяет и комментирует ваши работы, помогает разобраться в сложностях и обучает собственным профессиональным приёмам. Поддержка в чате доступна 24/7.
Специалисты по Data Science учат Data Science
Наставники — аналитики из Яндекса и других IT-компаний. Некоторые из них, как и вы, не сразу выбрали свою профессию и тоже осваивали её с нуля.
71,1% выпускников трудоустраиваются
Мы делаем всё, чтобы студенты нашли новую работу после обучения: выдаём официальный диплом, учим собирать портфолио проектов, помогаем с поиском работы.
71,1% выпускников находят работу, большинство из них — за 4 месяца после выпуска. Институт образования НИУ ВШЭ подтвердил данные через исследование трудоустройства выпускников.
Сколько стоит обучение
Вводная часть —
бесплатно
Платное продолжение
13 000 ₽ помесячный платёж.
Итоговая сумма составит 104 000 ₽
95 000 ₽ при оплате сразу за
8 месяцев обучения.
Программа обучения
Основы Python и анализа данных: бесплатный вводный курс
Вводный курс, из которого вы узнаете, что такое анализ данных и чем занимаются специалисты по data science. Решая кейсы из разных областей, вы изучите азы Python и библиотеки pandas, научитесь строить некоторые графики и верно их трактовать. Но главное — оцените свои силы, мотивацию и запас времени, чтобы решить, идти ли дальше.
+ 1 проект в портфолио
Предобработка данных
Научитесь очищать данные от выбросов, пропусков и дубликатов, а также преобразовывать разные форматы данных.
+ 1 проект в портфолио
Исследовательский анализ данных
Статистический анализ данных
Научитесь анализировать взаимосвязи в данных методами статистики. Узнаете, что такое статистическая значимость, гипотезы и доверительные интервалы.
+ 1 проект в портфолио
Научитесь предварительному исследованию данных, сформулируете и проверите гипотезы.
+ 1 проект в портфолио
Введение в машинное обучение
Освоите основные концепции машинного обучения. Познакомитесь с библиотекой Scikit-Learn и примените её для создания первого проекта с машинным обучением.
+ 1 проект в портфолио
Обучение с учителем (классификация и регрессия)
Углубитесь в самую востребованную область машинного обучения — обучение с учителем. Узнаете, как обращаться с несбалансированными данными.
+ 1 проект в портфолио
Машинное обучение в бизнесе
Примените свои знания о машинном обучении к задачам бизнеса. Узнаете, что такое бизнес-метрики, KPI и A/B-тестирование.
+ 1 проект в портфолио
Подготовите данные для машинного обучения. С помощью модели оцените её качество.
+ 1 проект в портфолио
Линейная алгебра
Заглянете внутрь нескольких изученных ранее алгоритмов и лучше поймёте, как их применять. На практике освоите с нуля главные концепции линейной алгебры: линейные пространства, линейные операторы, евклидовы пространства.
+ 1 проект в портфолио
Численные методы
Разберёте ряд алгоритмов и приспособите их к решению практических задач с использованием численных методов. Разберётесь, как обучаются нейронные сети. Для этого вы освоите приближённые вычисления, оценку сложности алгоритма, градиентный спуск и бустинг.
+ 1 проект в портфолио
Временные ряды
Проанализируете временные ряды. Создадите из них табличные данные и решите задачу регрессии.
+ 1 проект в портфолио
Машинное обучение для текстов
Представите тексты на естественном языке в качестве таблиц с данными. Примените к ним методы классификации и регрессии. Познакомитесь с алгоритмом TF-IDF, языковыми представлениями word2vec и BERT.
+ 1 проект в портфолио
Извлечение данных
Познакомитесь с основными системами хранения данных — реляционными базами и распределёнными хранилищами. Научитесь извлекать эти данные запросами на языке SQL и методами библиотеки PySpark.
+ 1 проект в портфолио
Компьютерное зрение
Немного Deep Learning. Решите базовые задачи на компьютерное зрение с помощью готовых нейронных сетей и библиотеки Keras.
+ 1 проект в портфолио
Обучение без учителя
Познакомитесь с задачами кластеризации и поиска аномалий.
Выпускной проект
В последнем проекте подтвердите, что освоили новую профессию. Уточните задачу заказчика, пройдёте все стадии анализа данных и машинного обучения. Теперь без уроков домашних заданий — всё как на настоящей работе.
Data Science: лучшие учебные курсы и программы сертификации
Можно получить два-три десятка Data Science-сертификатов, но по-настоящему стоящих программ сертификации из сферы науки о данных, по моему мнению, не так уж и много. Я хочу рассказать о нескольких таких программах, поддерживаемых авторитетными организациями. Эти программы я оцениваю по разным признакам. В частности — по объёму рассматриваемых в их рамках тем, по их «весу» в глазах потенциального работодателя, по репутации организации, реализующей программу. В последние несколько лет я являюсь и специалистом по анализу данных, и дата-сайентистом. Всё это время у меня формировалось понимание того, что сильнее всего влияет на успех человека в сфере Data Science (DS).
Здесь я рассмотрю ведущие программы Data Science-сертификации, входящие в список, собранный ресурсом Indeed. Из этого списка я выбрал четыре, которые кажутся мне наиболее достойными. Им и посвящён этот материал.
Google Certified Professional Data Engineer
Возможно, эта программа сертификации, которую я рассматриваю первой, кого-то удивит, так как она относится к сфере, отличной от Data Science. Но, несмотря на это, я уверен в том, что навыки и обязанности дата-инженера похожи на те, что характерны для дата-сайентистов. Ещё я думаю, что прохождение подобной сертификации может стать конкурентным преимуществом на рынке труда, так как дата-сайентист, получивший подобный сертификат, сможет эффективно работать не только в сфере науки о данных, но и в сфере инжиниринга данных.
Вот некоторые темы, знание которых проверяется на экзамене:
Общие сведения об экзамене:
Google Data Machine Learning Engineer
Это — ещё одна программа сертификации, которую тоже нельзя назвать программой, нацеленной исключительно на Data Science. Она, скорее, направлена на достаточно узкую тему, находящуюся в пределах науки о данных. Речь идёт о машинном обучении. Многие дата-сайентисты могут настолько привыкнуть к работе в Jupyter Notebook (ведь именно этому учат на большинстве DS-курсов), что необходимость вывода моделей в продакшн, необходимость их развёртывания на веб-сайте или в мобильной среде может вызвать у них серьёзные сложности. Поэтому тем, кто работает в сфере Data Science, весьма полезно будет ознакомиться и с вопросами практического применения моделей, что расширит их кругозор и сделает их работу эффективнее.
Вот темы, которые поднимаются на экзамене:
Общие сведения об экзамене:
IBM Data Science Professional Certificate
Это — уже не просто программа сертификации. Тут речь идёт о наборе учебных курсов, на которых можно изучить то, что проверяется во время прохождения испытаний. Эта программа сертификации, в отличие от предыдущих, ориентирована исключительно на саму науку о данных. А это, безусловно, именно та тема, которая нам особенно интересна. Ещё одной ценной особенностью этой программы является тот факт, что она подготовлена IBM, а пройти её можно на платформе Coursera. Обе эти компании известны и имеют хорошую репутацию.
Вот — 10 курсов, которые входят в состав учебной программы:
Общие сведения о программе учебных курсов:
Microsoft Certified Azure Data Scientist Associate
Как видите, в этом обзоре представлены программы сертификации от ведущих игроков IT-рынка. В их число входит и Microsoft. Если поучиться, поработать, пройти тестирование в любой из подобных компаний — это может пойти на пользу карьере дата-сайентиста. Представленная здесь программа напоминает смесь тех программ, о которых мы говорили выше. Это, с одной стороны, сертификация, но с другой — перед сертификацией тут же можно и подучиться, либо самостоятельно и бесплатно, либо — с инструктором и за деньги.
Вот темы, которые поднимаются на экзамене:
Итоги
В итоге скажу, что если вы сможете пройти все вышеописанные программы сертификации — полагаю, что вы будете более чем готовы к работе дата-сайентиста. Эти сертификации направлены на проверку знаний по популярным платформам и инструментам, а также — на проверку навыков, связанных с практическим использованием моделей. В частности, речь идёт о работе с бизнес-задачами, об анализе данных, о моделировании, о создании и развёртывании моделей. Конечно, если вы попробуете найти работу в компании, проводящей сертификацию, наличие сертификата повысит ваши шансы на успех. Подбирая себе программу сертификации учитывайте то, что те, о которых шла тут речь, я, руководствуясь собственным видением ситуации, выбрал из списка программ с ресурса Indeed. Есть ещё множество подобных программ. Вам, вполне возможно, подойдёт что-то совсем другое.
Как вы посоветовали бы учиться и сертифицироваться тому, кто хочет работать в сфере Data Science?
Самообучение в Data science, с нуля до Senior за два года
Хочу поделиться методами освоения Data science с нуля человеком из другой ИТ специальности. Цель: дать понять, подходит ли Вам эта специальность в принципе, и рассказать про эффективные подходы к самообучению, которые мне помогли (отдельно планирую потом детальные статьи по отдельным темам).
Отличные материалы уже существуют по большинству конкретных тем, я сам по ним учился.
Думаю, многим будут полезны «мета» материалы о том, как выбирать курсы и статьи, по которым учиться. Например, я пересмотрел десятки статей и книг, пробовал много разных он-лайн курсов, но полезной оказалась лишь малая часть всего доступного. Надеюсь, что смогу серьезно сэкономить вам время и помочь достигнуть большего, показав более эффективный путь самообучения.
И важно сказать сразу: я верю, что любой человек с аналитическими способностями и структурным мышлением может стать специалистом по машинному обучению/data science. Еще 4 года назад я сомневался, потеряв веру в свои математические способности из-за преподавателей университета. Теперь верю: основы машинного обучения и минимально необходимую математику сможет выучить любой сильно замотивированный человек.
Когда я понял, что скоро мне стукнет 30 лет, решил уйти в другую сферу и переехать из РФ. В своей сфере (1С) я был карьерно успешен, но стало ясно, что дальнейший рост очень затруднителен и требует выполнять работу, которая мне неинтересна и почти противна.
Через полгода перебора вариантов решил, что Data science мне интереснее всего.
Ещё через год имел достаточную квалификацию и прошёл собеседование на работу в Чехии (оговорка: у меня еще до этого было неплохое знание английского).
Ещё через год стал Senior Data scientist в Vodafone (мой LinkedIn).
Мне помогло то, что до этого я сформировал привычки к самообразованию, а экономность не позволила мне пойти по самому простому пути: найти онлайн курс с именитыми преподами, заплатить им много денег и довериться, что они всему научат лучше всего. В итоге я перебирал много бесплатно доступных книг и курсов (книги часто были найдены на b-ok.org). Из всех курсов и книг отбирал самые лучшие, забрасывая то, что казалось слишком теоретизированными или плохо структурированным.
На основе этих десятков книг и курсов я и сформировал то мнение, которым хочу поделить. Вероятно, существует еще более эффективный и быстрый способ научится этому всему. То, как учился я, было всего-лишь быстрее большинства платных программ, которые я видел, и заодно бесплатным (на многие лучшие англоязычные курсы всегда можно записаться бесплатно; покупал я только книги русских авторов и пару книг, которые иначе не смог найти).
Сначала надо понять, что такое Data science/машинное обучение и подойдет ли оно вам
Потому что если это просто модное слово и вы хотите получать много денег или работать в Гугл, то легче заработать на позиции маркетолога или веб-аналитика, и это тоже достаточно аналитичная работа.
Если вы человек творческий, возможно, разработка интерфейсов (фронтенд, мобильные приложения) вам подойдёт больше.
Если вы от природы аналитик и любите разбираться в данных, но программирование вас не заинтересует, а на изучение всей математики вам не хватает времени, стоит выбрать тот же самый учебный путь! Просто сделать акцент на мнее математических задачах, и не лезть в программироване сложных систем. Аналитики, знающие основы data science, тоже нужны в компаниях.
Важно, чтобы работа зажигала. Без искреннего интереса «грызть» Data science будет тяжело, потому что надо разобраться в куче нюансов, особенно если у вас нет за плечами хороших знаний в статистике, линейной алгебре и мат.анализе.
Как понять, будет ли вам интересно заниматься именно data science?
Мне кажется, что идеально эту роль выполняет книга Datasmart (выше писал сайт, на котором я нашёл её бесплатно). На русский она тоже переведена: «Много цифр. Анализ больших данных при помощи Excel, Джон Форман». Хотя, если вы хотите работать в data science, знание английского необходимо (технический английский выучить намного легче разговорного, и это будет очень полезно для любой работы в ИТ).
Эта книга показывет многие из технических методов Data science на уровне интуиции и даёт сразу достаточно детальное представление о решаемых задачах и где в бизнесе можно применить данные модели.
Если эта книга не вызовет интерес разобраться во всех указанных алгоритмах детальнее, вероятно, работа в data science не для вас.
Если книга интересн вызовет, но вам также хочется больше программировать, скорее всего, вам интересно будет стать machine learning engineer. Разница между data scientist и machine learning engineer в том, что первый должен общаться с людьми и понимать, какую задачу имеет смысл решать, а второй должен уметь состыковать программы с «искусственным интеллектом» с другими ИТ системами, мобильными телефонами или требованиями обрабатывать огромные объемы данных.
Что учить
Если вы решили, что готовы «грызть гранит науки», то в образовании специалиста data science есть два кита:
Непосредственные методы Data science, которые стоят на трёх математических черепахах: теории вероятностей и статистике, линейной алгебре и основах мат.анализа (только основах, там требуется минимум сверх школьного курса «алегбра и начало анализа»). Кстати, вся эта математика далеко не так сложна. Проблема в том, что её плохо и неинтересно объясняют во многих вузах. Позже поделюсь советами, как её можно легче освоить.
Программирование на Python (+SQL и подобные), которое позволит применить все изученные методы с помощью логичных и простых в своей сути библиотек готовых функций.
Даже примерный учебный план для изучения методов Data science требует отдельного поста. Ниже напишу чуть подробнее про Python и SQL
Английский необходим!
Принципы эффективного обучения
Программирование: что и как учить?
Что такое SQL и зачем его учить?
SQL является стандартом для получения данных в нужном виде из разных баз данных. Это тоже своеобразный язык программирования, который дополнительно к своему основному языку используют многие программисты. Большинство самых разных баз данных использует один и тот же язык с относительно небольшими вариациями.
Как учить SQL:
Наберите в Гугле «sql tutorial» и начните учиться по первой же ссылке. Если она вдруг окажется платной, выберете другую. По SQL полно качественных бесплатных курсов.
На русском языке тоже полно курсов. Выбирайте бесплатные.
На изучение достаточно всего лишь от 10 часов (общее понимание), до 20 часов (уверенное владение большей частью всего необходимого).
Почему именно Python?
У всех других языков программирования какие-либо специализированные библиотеки для машинного обучения есть только в зачаточном состоянии.
Как учить Python
Прочитать основы и пройти все упражнения с этого сайта можно за 5-40 часов, в зависимости от вашего предыдущего опыта.
После этого варианты (все эти книги есть и на русском):
Learning Python, by Mark Lutz (5 издание). Существует и на русском.
Есть много книг, которые сразу обучают использованию языка в практических задачах, но не дают полного представления о детальных возможностях языка.
Эта книга, наоборот, разбирает Python досконально. Поэтому по началу её чтение будет идти медленнее, чем аналоги. Но зато, прочтя её, вы будете способны разобраться во всём.
Я прочёл её почти целиком в поездах в метро за месяц. А потом сразу был готов писать целые программы, потому что самые основы были заложены в pythontutor.ru, а эта книга детально разжевывает всё.
В качестве практики берите, что угодно, когда дочитаете эту книгу до 32 главы, и решайте реальные примеры (кстати, главы 21-31 не надо стараться с первого раза запоминать детально. Просто пробежите глазами, чтобы вы понимали что вообще Python умеет).
Не надо эту книгу (и никакую другую) стараться вызубрить и запомнить все детали сразу. Просто позже держите её под рукой и обращайтесь к ней при необходимости.
Прочитав эту книгу, и придя на первую работу с кучей опытных коллег, я обнаружил, что некоторые вещи знаю лучше них.
Python Crash Course, by Eric Matthes
Automate the Boring Stuff with Python
Книга хороша примерами того, что можно делать с помощью Python. Рекомендую просмотреть их все, т.к. они уже похожи на реальные задачи, с которыми приходится сталкиваться на практике, в том числе специалисту по анализу данных.
Какие трудозатраты?
Путь с нуля до уровня владения Python, на котором я что-то уже мог, занял порядка 100ч. Через 200ч я уже чувствовал себя уверенно и мог работать над проектом вместе с коллегами.