Как стать Data Scientist, не потратив ни копейки

Photo by NASA on Unsplash

Учёба на магистра Data Science в обычном офлайновом вузе США может стоить от $30 тысяч до $120 тысяч. Даже онлайн-курсы по этой специальности могут «влететь» минимум в $9 тысяч. DEV.BY опубликовал перевод статьи «How to Learn Data Science for Free» с сайта Towards Data Science — для тех, кто не желает тратиться или просто не может себе позволить такое удовольствие, но очень хочет стать дата-сайентистом. В этой статье Ребекка Викери (10 лет в сфере) поделилась программой обучения, по которой изучала DS сама.

План состоит из трех частей (технические навыки, теория, практика) и полностью построен на бесплатных материалах. Для тех, кто всё же готов немного инвестировать в самообразование, прикреплены ссылки на курсы, которые ускорят процесс.

Технические навыки

— Советую начинать именно с них, чтобы вы сразу ориентировались на практику, а не уходили в математическую теорию. Самый популярный язык программирования в DS — Python. По опросу Kaggle, который площадка проводила внутри своего сообщества специалистов по обработке данных и машинному обучению в 2018 году, 83% респондентов используют Python ежедневно. Поэтому в первую очередь изучите его, но немного внимания нужно будет уделить кое-каким другим языкам. Например, R.

Основы Python

В сети масса бесплатных вводных курсов, но лично я считаю, что лучшие — это курсы Codecademy: в них много практических заданий, все они выполняются в браузере.

Предлагаю пройти вот этот вводный курс по Python. Здесь изложены основы синтаксиса, функции, поток управления, циклы, модули и классы.

Python и анализ данных

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

  1. Для начала пройдите хотя бы бесплатную часть материалов по анализу данных на dataquest.io. Этот ресурс предлагает полноценные учебные программы по подготовке дата-аналитиков, дата-сайентистов и дата-инженеров. 
  2. Очень много контента, особенно по анализу данных, находится в бесплатном доступе, но если вы захотите выучиться побыстрее и не пожалеете денег, то очень рекомендую оформить подписку на несколько месяцев. Этот курс заложит прочный фундамент для дальнейшего изучения DS. Я прошла программу для дата-сайентистов за полгода. Цены у Dataquest в диапазоне от $24,5 до $49 в месяц в зависимости от того, на какой срок покупать подписку (годовая — дешевле).
https://www.facebook.com/dataquestio/videos/2249384328500752/

Python и машинное обучение

  1. По возможности не скупитесь на полный курс по DS на Dataquest: он даст вам крепкую базу по использованию Python в машинном обучении. В противном случае есть множество бесплатных источников. Начинайте со scikit-learn — это, пожалуй, самая популярная ML-библиотека для Python.
  2. Ещё мне повезло попасть на двухдневный воркшоп Андреаса Мюллера, одного из ключевых разработчиков scikit-learn. Материал того курса (и не только) он целиком выложил на GitHub. Здесь есть наглядная графика, конспекты и заметки, над которыми можно поработать самостоятельно, что я вам настоятельно рекомендую.
  3. Стоит ознакомиться с некоторыми туториалами из документации scikit-learn, после чего уже можно попробовать делать настоящие ML-приложения и разбираться с тем, как устроены ML-модели (но об этом позже).

SQL

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

Вот пара бесплатных ресурсов для тех, кто решил не брать полный курс на Dataquest.

  1. Бесплатный вводный курс в SQL есть на Codecademy. Он очень удобный, кодить нужно не выходя из браузера.
  2. Тем, кто интересуется облачными базами данных и отправкой запросов в них, рекомендую заглянуть на Google Cloud BigQuery. Здесь есть пробная версия (можно потренироваться бесплатно), доступ к обширному массиву публичных датасетов и толковая документация.

R

Не ограничивайтесь Python: дата-сайентисту очень полезно владеть языком R, поэтому советую пройти вводный курс ещё и по нему.

Бесплатный вариант есть на Codecademy. Стоит отметить, что эта площадка тоже предлагает комплексную программу по подготовке дата-сайентистов, но только по подписке на тариф Pro. Стоит она от $15,99 до $ 31,99 в месяц — смотря на сколько месяцев вперёд платить. Лично мне курс Dataquest показался гораздо более содержательным, хотя здесь может получиться немного дешевле, если вы предпочитаете заниматься по одной платформе.

Разработка программного обеспечения

Дата-сайентисту будет нелишним освоить навыки и лучшие практики разработки софта: это улучшит читабельность вашего кода, и его будет проще дополнять — как вам самим, так и другим. Кроме того, чтобы выкатывать модели в продакшн, нужно научиться генерировать качественный, хорошо проверенный код и работать с такими инструментами, как системы контроля версий.

В помощь вам — два ресурса:

  1. Python like you mean it охватывает руководство PEP 8, которое описывает общепринятый стиль оформления кода на Python, документацию, и ещё в нём очень сильная часть про объектно-ориентированное программирование.
  2. Этот гайд — о том, как вносить вклад в разработку scikit-learn. Здесь здорово разобраны лучшие подходы и принципы, которые на самом деле универсальны и применимы не только к этой библиотеке. Затрагивается GitHub, юнит-тестирование и отладка кода, причём всё рассмотрено в контексте DS.

Глубокое обучение

Самое лучшее и развёрнутое введение в глубокое обучение дают авторы fast.ai — этот ресурс тоже бесплатный, и на нём совершенно нет рекламы.

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

Photo by Chris Liverani on Unsplash

Теория

По ходу изучения технических моментов вам неизбежно будет встречаться теория, которая стоит за кодом.

Призываю вас учить теорию без отрыва от практики.

Например, я изучаю код, чтобы научиться применять какую-то технику (скажем, метод k-средних, KMeans), а когда она сработает, начинаю глубже разбираться с понятиями, которые с ней связаны (например, с инертностью, Inertia).

  1. Все сопутствующие алгоритмам математические термины есть в той же документации scikit-learn.
  2. Ниже я перечислю главное, что нужно изучить из теории вместе с прикладными аспектами. Почти по всем этим вещам есть бесплатные уроки на khan academy. Во время регистрации или в профиле можно выбрать нужные вам дисциплины, и сайт выдаст пошаговый план по каждому предмету.

Математика

Математический анализ (Calculus)

В этом разделе математики рассматривается связь между функцией и её производной, из-за которой изменение одной переменной величины приводит к изменению другой. Матанализ позволяет, например, выявлять паттерны, понимать, как функция меняется с течением времени.

В машинном обучении матанализ помогает оптимизировать производительность алгоритмов. Один из примеров — метод градиентного спуска. Он состоит в том, что при обучении по одному изменяют весовые коэффициенты нейросети для поиска минимального значения функции потерь.

Что нужно знать.

Производные (Derivatives)

  • Геометрический смысл (Geometric definition)
  • Вычисление производной функции (Calculating the derivative of a function)
  • Нелинейные функции (Nonlinear functions)

Цепное правило (или Правило дифференцирования сложной функции, Chain rule)

  • Сложные функции (Composite functions)
  • Производные сложных функций (Composite function derivatives)
  • Множественные функции (Multiple functions)

Градиенты (Gradients)

  • Частные производные (Partial derivatives)
  • Производные по направлению (Directional derivatives)
  • Интегралы (Integrals)

Линейную алгебру (Linear Algebra)

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

Что нужно знать

Векторы и пространства (Vectors and spaces)

  • Векторы (Vectors)
  • Линейные комбинации (Linear combinations)
  • Линейная зависимость и независимость (Linear dependence and independence)
  • Скалярное произведение и векторное произведение (Vector dot and cross products)

Матричные преобразования (Matrix transformations)

  • Функции и линейные преобразования (Functions and linear transformations)
  • Умножение матриц (Matrix multiplication)
  • Обратные функции (Inverse functions)
  • Транспонирование матрицы (Transpose of a matrix)

Статистика

Что нужно знать

Описательная/дескриптивная статистика (Descriptive/Summary statistics)

  • Описание выборки данных (How to summarise a sample of data) 
  • Типы распределений (Different types of distributions)
  • Асимметрия, эксцесс, меры центральной тенденции, например среднее арифметическое, медиана, мода (Skewness, kurtosis, central tendency, e.g. mean, median, mode)
  • Меры зависимости и взаимосвязь переменных величин, например корреляция и ковариация (Measures of dependence, and relationships between variables such as correlation and covariance)

Планирование эксперимента (Experiment design)

  • Проверка гипотез (Hypothesis testing)
  • Семплирование (Sampling)
  • Тесты на статистическую значимость (Significance tests)
  • Случайность (Randomness)
  • Вероятность (Probability)
  • Доверительные интервалы и статистический вывод по двум выборкам (Confidence intervals and two-sample inference)

Машинное обучение (Machine learning)

  • Вывод о наклоне линии регрессии (Inference about slope) 
  • Линейная и нелинейная регрессия (Linear and non-linear regression)
  • Классификация (Classification)
Photo by Carlos Muza on Unsplash

Практика

Теперь можно приступить к третьей части программы — практическому опыту. Чтобы отточить полученные скиллы, их нужно задействовать в проектах — желательно, чтобы они были похожи на какие-то уже существующие приложения. Попутно перед вами будут возникать разные сложности, но справляясь с ними, вы очень хорошо «прощупаете» предмет и прокачаете свои знания.

Андерс Эрикссон, «Максимум. Как достичь личного совершенства с помощью современных научных открытий»: «Чтобы научиться чему-то, чего вы не умели раньше, нужно постоянно выходить из состояния равновесия и заставлять мозг и тело адаптироваться к изменяющимся условиям».

Kaggle

Конкурсы по машинному обучению — отличная возможность потренироваться создавать модели. Там есть доступ к множеству датасетов, предназначенных для решения отдельных задач. По турнирной таблице можно сравнивать свои успехи с другими участниками. А ещё по результатам вам будет видно, в каких темах у вас пробелы и что нужно подтянуть.

Помимо Kaggle, есть разные другие платформы, где можно попробовать свои силы. Например Analytics Vidhya и DrivenData.

ML-репозиторий UCI

UCI Machine Learning Repository — огромный клад публичных датасетов, которые можно использовать в домашних ML-проектах. Создайте портфолио на GitHub и размещайте проекты в нём. Оно будет не только демонстрировать ваши способности и достижения, но и в дальнейшем может помочь найти работу.

Вклад в Open Source

Участвуйте в чужих проектах. Очень многие Python-библиотеки поддерживаются опенсорс-сообществом. В рамках митапов и конференций часто проводят хакатоны, куда приглашают даже новичков. Это хорошая возможность для взаимного «обмена премудростями»: здесь можно и чему-то научиться у других, и поделиться знаниями. Один из вариантов — хакатон, спонсируемый фондом NumFOCUS.

Практические ресурсы хорошо разнообразят книги по Data Science из этого списка. Все можно найти в открытых источниках.

[customscript]techrocks_custom_after_post_html[/customscript]

[customscript]techrocks_custom_script[/customscript]

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх