Вливаемся в Data Science: подробный roadmap что и где изучать

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

Привет, Хабр)

В этой статье рассмотрим план становления начинающим дата-сайнтистом.

Data Science, как и любая бурно развивающася область постепенно растёт, и сейчас люди могут подразумевать под DS много всего разного. Поэтому для начала определимся, кого мы будем называть "дата-сайнтистом". Ему и посвящается данный roadmap.

Итак, наш сферический дата-сайнтист в вакууме знает:

  • специфику бизнеса и доменной области

  • английский на базовом уровне (читать доки)

  • азы матана, статистики, линала, теорвера

умеет:

  • программировать на Python, R, SQL

  • работать с базами данных

  • коммуницировать с коллегами и презентовать результаты своей работы

Типичный набор шагов DS-специалиста для решения задачи:

  1. Прояснить требования к бизнес-задаче и перевести её в математическую плоскость.

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

  3. Проанализировать и структурировать данные.

  4. Построить модель машинного обучения, которая будет решать задачу.

  5. Проверить правильность работы модели: внедрить на наборе пользователей или провести A/B-тестирование.

А вот реальные кейсы из жизни дата-сайнтиста:

Кейс 1

Заказчик — кредитный отдел банка. Нужно разобраться, влияет ли семейное положение и количество детей клиента на факт погашения кредита в срок. Входные данные от банка — статистика о платёжеспособности клиентов. Результаты исследования будут учтены при построении модели кредитного скоринга — специальной системы, которая оценивает способность потенциального заёмщика вернуть кредит банку.

Кейс 2

В вашем распоряжении данные сервиса Яндекс.Недвижимость — архив объявлений о продаже квартир в Санкт-Петербурге и соседних населённых пунктах за несколько лет. Нужно научиться определять рыночную стоимость объектов недвижимости. Ваша задача — установить параметры. Это позволит построить автоматизированную систему: она отследит аномалии и мошенническую деятельность.

Кейс 3

Вы аналитик компании «Мегалайн» — федерального оператора сотовой связи. Клиентам предлагают два тарифных плана: «Смарт» и «Ультра». Чтобы скорректировать рекламный бюджет, коммерческий департамент хочет понять, какой тариф приносит больше денег. Вам предстоит сделать предварительный анализ тарифов на небольшой выборке клиентов. В вашем распоряжении данные 500 пользователей «Мегалайна»: кто они, откуда, каким тарифом пользуются, сколько звонков и сообщений каждый отправил за 2018 год. Нужно проанализировать поведение клиентов и сделать вывод — какой тариф лучше.

В защиту "оторванной от жизни" теории. Кто-то может добавить, что некоторые задачи DS довольно шаблонные. Мол, не стоит месяцами упарываться над теорвером, линейной алгеброй и прочими теоретическими, оторванными от жизни, штуками. Но. Смею возразить, что в критических ситуациях именно чуть более глубокое знание матана или чего бы то ни было поможет вырулить. Читали, как Джефф с Санджаем подняли из руин мёртвый краулер Google, когда просмотрели его двоичный код?

Короче, пузырь IT растёт, прогеры штампуются на курсах на каждом углу, поэтому именно понимание деталей, знание области (не только матан, глубокое понимание машинного обучения, скажем) выделит вас на фоне безликой массы. Кстати, те же Джефф и Санджай — это единственные сотрудники Google 11 разряда.

Ниже я привёл несколько блоков, освоение которых, как я считаю, помогает плавно и безболезненно влиться в Data Science. Освоение включает в себя изучение теории и нарабатывание практики. Это не будет лёгкой прогулкой, придётся попотеть, но именно практика поможет научиться решать реальные задачи бизнеса. Поехали!

Кстати, получить ещё больше полезной инфы по Data Science вы можете в моём тг — добро пожаловать. А вот годная подборка каналов по Machine Learning и не только

1. Теория вероятностей и описательная статистика​

Базовые концепции, которые нужно понимать:

  • категориальные и числовые данные

  • среднее значение, мода и медиана

  • стандартное отклонение и дисперсия

  • ковариация, корреляция, асимметрия

  • комбинаторика, события и их вероятности

  • классическая вероятность, условная вероятность

  • формулы Байеса, Пуассона и Бернулли

  • локальная и интегральная теоремы Лапласа

  • дискретные случайные величины

  • дискретные распределения (геометрическое, биномиальное, Пуассона)

  • непрерывные случайные величины

  • непрерывные распределения (равномерное, показательное, нормальное)

Начать изучение можно с «Основы статистики» от Анатолия Карпова:

Тут объяснение критерия Стьюдента, роли центральной предельной теоремы, A/B-тестирования. В других частях курса «Основы статистики» подробно объясняется линейная регрессия, мультиколлинеарность, гетероскедастичность и много других важных понятий.

Другие полезные ресурсы:

  • «Теория вероятностей и математическая статистика» — Гмурман В.Е.

  • «Статистика для всех» — Сара Бослаф

  • «Вероятность» (в двух томах) — Ширяев А.Н

  • «Наглядная математическая статистика» — Лагутин М.Б.

  • «Теория вероятностей и математическая статистика» — Кремер Н.Ш.

  • «Практическая статистика для специалистов Data Science» — Питер Брюс, Эндрю Брюс, Питер Гедек

  • Статистика — курс от БФУ им. И. Канта

  • Теория вероятностей: часть 1, часть 2 — курсы от ТГУ

  • Основы статистики: часть 1, часть 2, часть 3 — курсы от института биоинформатики

  • Теория вероятностей, Математическая статистика — курсы от Computer Science Center

  • немного матана с линалом не помешает: Essence of Linear Algebra, Essence of Calculus

2. Языки программирования: R, Python​

Ну с питоном всё понятно — он используется много где как простой инструмент прототипирования. Вот и в Data Science питон используется, например, для быстрого создания дашбордов (Streamlit в помощь), для очистки датасета, построения всевозможных гистограмм, тепловых карт и т.д. Конечно, если получился большой функциональный комбайн на Python и нужно то же самое, но быстрое — всё это перекраивается с помощью всяких Apache Spark, Hadoop Mapreduce и иже с ними.

Базовые вещи Python, которыми нужно уметь оперировать:

  • типы данных: числа, строки, списки, множества, кортежи

  • циклы while и for, условия, их комбинации

  • функции, область видимости, lambda, рекурсия, декораторы

  • генераторы

  • вычислительная сложность, операции над структурами данных

  • стандартная библиотека

  • работа с ошибками и исключениями, try-except, raise, assert

  • работа с файлами: чтение, запись, сериализация

  • концепции ООП: полиморфизм, наследование, инкапсуляция

Начать изучение Python можно вот с этого курса — «Программирование на Python»

А это можно после освоения азов:

  • более продвинутый курс на Stepik

  • неплохой курс от автора лекций в МГУ и МИРЭА

С Python всё понятно. А вот стоит ли изучать R, если то же самое можно сделать на Python? Начнём с того, что R давно бы канул в небытие, если бы реально не предлагал серьёзных преимуществ. Во-первых, R специально разрабатывался для спецов по статистике и анализу данных, поэтому имеет качественную визуализацию данных. Ещё у R масса крутых библиотек (Dplyr, Ggplot2, Esquisse...) и нативная поддержка векторных вычислений. Ну и к тому же R популярен в академической среде, поэтому на нём довольно быстро реализуются самые свежие алгоритмы обработки данных.

Начать изучения R можно вот с этого курса на Stepik — «Анализ данных в R»

Также очень круто использование R описано тут, на курсе «Статистика, R и анализ данных» — Поздняков Иван, Петухова Татьяна. Здесь описано буквально всё, что может пригодится в работе аналитика: операции над векторами, препроцессинг данных, работа с матрицами, описательная статистика, визуализация и ещё много всего.

​3. Разные библиотеки, инструменты и техники Python для Data Science​

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

Pandas. При помощи неё можно как минимум:

  • обновить, добавить, удалить столбцы из фрейма данных

  • провести индексирование, манипулирование, переименование, сортировку, объединение фрейма данных

  • обработать датасет: дополнить недостающие данные, удалить выбросы и т.д.

  • построить гистрограммы и много других графиков

NumPy. Очень мощный и быстрый инструмент для работы с массивами и вычислениями. Что можно делать?

  • операции с массивами: добавление, умножение, срез, выравнивание, изменение формы и ещё много других операций и вычислений

SciPy. Для чего может использоваться SciPy?

  • математические, научные, инженерные вычисления

  • процедуры численной интеграции и оптимизации

  • поиск минимумов и максимумов функций

  • вычисление интегралов функции

  • масса инструментов для работы со специальными функциями

  • работа с генетическими алгоритмами

  • решение дифференциальных уравнений

Matplotlib. Редкий питонист не знает эту либу. Кто-то скажет, что она устарела, но я считаю, что освоить её стоит. Эта либа позволяет строить массу самых разных графиков:

  • спектрограммы

  • гистограммы

  • тепловые карты

  • боксплоты

  • и ещё много самых разных графиков.

Вместе с Matplotlib упомянем тут Seaborn, Bokeh и Plotly, они тоже активно используются для создания графиков, а в некоторых областях полностью вытеснили Matplotlib.

Scikit Learn. Эта библиотека включает в себя массу реализаций алгоритмов ML: SVM, random forests, k-means кластеризацию и много других. Что можно делать с помощью Scikit Learn?

  • классификация: обнаружение спама, распознавание изображений

  • кластеризация: цена акций

  • предобработка: подготовка входных данных в виде текста

  • и можно делать ещё много всего, связанного с алгоритмами ML

TensorFlow. Известная гугловая библиотека для работы с нейросетями. Поэтому применения ожидаемы:

  • распознавание голоса/звука

  • анализ настроения (например, эмоционального окраса текста)

  • распознавание лиц

  • прогнозирование временных рядов

Можно продолжать список возможных применений ещё долго. TensorFlow конкурирует с PyTorch, между ними довольно большие отличия (например, в их графах), и PyTorch сейчас лидирует (в смысле во многих проектах используется именно PyTorch).

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

​4. SQL и базы данных​

Что нужно освоить по SQL?

  • базовые концепции: таблицы, столбцы, строки и типы данных

  • создание простых SELECT-запросов

  • фильтрация с помощью WHERE и LIKE

  • агрегирующие функции: COUNT, SUM, AVG, MAX/MIN

  • группировка с помощью GROUP BY, HAVING

  • объединение таблиц через JOIN

  • CREATE TABLE для создания новых таблиц

  • ALTER TABLE, DROP TABLE для изменения и удаления

  • INSERT, UPDATE для добавления, изменения строк в таблице

  • DELETE для удаления строк

  • концепции базы данных (первичные и внешние ключи)

  • создание новой БД при помощи CREATE DATABASE

  • и это ещё не всё

Начать освоение SQL можно вот с этого неплохого курса от Галины Озеровой из ДФУ — «Интерактивный тренажер по SQL»

А также можно использовать эти полезные ресурсы для изучения SQL:

  • Как изучать SQL — roadmap

  • Курс Khan Academy SQL

  • Интерактивные уроки и задачи для изучения SQL от SQLZoo

  • Уроки, задания и тесты для проверки знаний от SQLCourse

Полезная литература:

  • «PostgreSQL. Основы языка SQL» — Евгений Моргунов

  • «SQL для чайников» — Алан Бьюли

  • «Рефакторинг SQL приложений» — Стефан Фаро

  • «SQL - язык запросов к базам данных» — А. А. Степанов

  • «Оптимизация запросов PostgreSQL» — Домбровская Г.Р, Новиков Б.А, Бейликова А.

  • «SQL и реляционная теория. Как грамотно писать код на SQL» — К. Дж. Дейт

  • «SQL. Полное руководство» — Александр Кузнецов

  • «Реляционные базы данных в примерах» — Святослав Куликов

  • «SQL. Сборник рецептов» — Роберт де Грааф, Энтони Молинаро

  • «SQL (Quick Start)» — Крис Фиайли

5. Машинное обучение​

Во-первых, нужно прояснить путаницу: Machine Learning — это вполне самостоятельная дисциплина и она существует вне DS. Но в Data Science можно использовать отдельные алгоритмы и концепции ML для лучшего исследования данных. Таким же образом можно использовать в DS и Ai, и глубокое обучение. Вот схемка, которая должна всё прояснить:

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

Собственно, желательно хотя бы примерно ориентироваться в этих методах ML — тогда будет понятно, как и когда какой метод можно применить в анализе данных.

Вот 3 кейса — они помогут понять, как применятся машинное обучение в DS:

Вы работаете в добывающей компании «ГлавРосГосНефть». Нужно решить, где бурить новую скважину. Вам предоставлены пробы нефти в трёх регионах: в каждом 10 000 месторождений, где измерили качество нефти и объём её запасов. Постройте модель машинного обучения, которая поможет определить регион, где добыча принесёт наибольшую прибыль.

Возможный стек: Python, Pandas, Numpy, Matplotlib, Machine Learning, SciPy, Scikit-learn, LinearRegression, Bootstrap

Подготовьте прототип модели машинного обучения для «Цифры». Компания разрабатывает решения для эффективной работы промышленных предприятий. Модель должна предсказать коэффициент восстановления золота из золотосодержащей руды. Используйте данные с параметрами добычи и очистки. Модель поможет оптимизировать производство, чтобы не запускать предприятие с убыточными характеристиками.

Возможный стек: Python, Pandas, Numpy, Matplotlib, Machine Learning, Seaborn, SciPy, Scikit-learn, RandomForestRegressor, DecisionTreeRegressor

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

Возможный стек: Python, Pandas, Numpy, Machine Learning, Scikit-learn, LGBMRegressor, CatBoostRegressor

А вот, скажем, применение графовых нейронных сетей в управлении цепями поставок может предполагать такой стек: Python + Pandas + Pytorch + Pytorch geometric + Git + Colab

Начать изучения ML в рамках Data Science можно с этого курса — «Введение в Data Science и машинное обучение»

А это ресуры, которые помогут продолжить изучение ML:

  • Вкатываемся в Machine Learning с нуля

  • «Математические основы машинного обучения и прогнозирования» — Владимир Вьюгин

  • «Верховный алгоритм» — Педро Домингос

  • «Машинное обучение» — Хенрик Бринк, Джозеф Ричардс, Марк Феверолф

  • «Крупномасштабное машинное обучение вместе с Python» — Бастиан Шарден, Лука Массарон, Альберто Боскетти

  • «Python и машинное обучение» — Себастьян Рашка

  • «Машинное обучение. Наука и искусство построения алгоритмов, которые извлекают знания из данных» — Петер Флах


Напоследок оставлю вот такую классную кликабельную дорожную карту Data Science, Ai. Тут всё — курсы, книги, практика. Если норм с английским, то с этого можно начать

Вместо заключения

Что ж, на этом пришло время закругляться. Цель данной статьи «дать пониманиние, где копать начинающему дата-сайнтисту» можно считать выполненной. После освоения этих 5 блоков: теорвер + статистика, R & Python, DS-библиотеки Python, SQL, машинное обучение уже появится понимание, что такое DS и какие задачи встают перед дата-сайнтистом. Дальше уже можно переходить к составлению резюме, поиску стажировок и другим интересным вещам. Подробно о поиске работы написано в этой хабростатье — «Вкатываемся в Machine Learning с нуля за ноль рублей»

P.S. Сфера Data Science растёт, "дата-сайнтист" становится собирательным понятием массы довольно разных видов деятельности. Посему было бы интересно в комментах послушать тех, кто давно в DS — расскажите про стек технологий, очертите круг задач. Какое представление о DS у вас было на старте, как оно поменялось? Какое знание на старте помогло бы вам успешнее решать текущие задачи? Поделитесь — это было бы очень полезно для многих.

Кстати, для начинающих дата-сайнтистов в моём тг-канале есть море годноты — добро пожаловать. А это отличная подборка каналов по Machine Learning и не только.

Источник: https://habr.com/ru/articles/785064/


Интересные статьи

Интересные статьи

Как мы выяснили в прошлой статье, разделение на гуманитариев и технарей — это больше стереотип, чем научный подход. Сегодня поговорим о профессии, в которой соединяются оба направления. Дата-журн...
Всем привет! Меня зовут Николай Когель, я главный инженер по разработке Управления технологий MIS Департамента ИТ-блока «Финансы» в Сбере. Сейчас в Сбере существует несколько крупных систем, в которых...
Привет, Хабр! Мы в Х5 очень любим данные и умеем с ними обращаться. Недавно мы провели «Цифровой четверг» — дискуссию с представителями ИТ-компаний, облачных провайдеров и телекомов. На встрече обсуди...
Можно получить два-три десятка Data Science-сертификатов, но по-настоящему стоящих программ сертификации из сферы науки о данных, по моему мнению, не так уж и много. Я хочу рассказать о нескольких так...
Святослав Зборовский из BI-команды DataArt изучил, кого из коллег чаще всего благодарят с помощью корпоративной системы. В статье для Хабр он рассказал, как быстро построить и оптимиз...