Data Scientist

Новая программа «Data Scientist»
О курсе
1
0

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

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

Курс дает комплексные ответы на следующие вопросы:
- когда и зачем нужно анализировать данные?
- какую пользу приносит анализ данных?
- какие бывают данные?
- каковы принципы работы алгоритмов машинного обучения?
- как работать с неструктурированными (текстовыми) данными?
- как работать с большими данными?

После обучения вы сможете:
- использовать методы машинного обучения в практически полезных приложениях и исследованиях;
- выбирать подходящие алгоритмы и метрики;
- разбираться в математических основаниях алгоритмов машинного обучения;
- проводить предварительную обработку данных (очистка, работа с пропусками, определение типа шкал);
- проводить статистические исследования и интерпретировать их результаты;
- создавать предсказательные модели для качественных и количественных данных;
- применять методы обучения без учителя (кластеризация, снижение размерности);
- работать с ограниченными датасетами, структурированными и неструктурированными данными;
- проектировать архитектуру нейросетей и обучать их;
- самостоятельно реализовывать весь процесс: от поиска полезной информации в массивах данных до построения схемы обработки данных в боевом окружении.

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

В результате обучения вы не только расширите свой инструментарий в области анализа данных, но и улучшите навыки в следующих технологиях: Python, Pandas, Sklearn, Keras, нейросети, SQL, логистическая регрессия, предсказательные модели, машинное обучение, математическая статистика, Natural language processing, Deep learning.

После прохождения курса в вашем распоряжении останутся:
- презентации и видеозаписи занятий, все сопутствующие материалы;
- собственные уникальные исследования, которые можно показывать при устройстве на работу;
- один большой проект, решающий конкретную практическую проблему;
- сертификат о прохождении обучения.

Требуемые трудозатраты в неделю: 2 вебинара + 3-5 часов на домашнюю работу.

Программа
Модуль 1
Введение в машинное обучение
Модуль 2
Продвинутые алгоритмы машинного обучения
Модуль 3
Применение методов машинного обучения к разным типам данных (текст, рекомендации, графы, временные ряды)
Модуль 4
Нейронные сети и глубокое обучение
Модуль 5
Проектная работа
Введение в машинное обучение
В первом модуле разберем: задачи, которые решают методы машинного обучения; необходимые темы из математического анализа, линейной алгебры и теории вероятности; базовые инструменты анализа данных в python; простые методы машинного обучения (линейная регрессия, логистическая регресси, lda, наивный баесс)
Оценить модуль
2
0
Базовые инструменты анализа данных в Python.
Цели:
Участники узнают, какие задачи они смогут решать по окончании курса, научатся настраивать рабочее окружение и узнают функционал базовых библиотек для работы с данными в python.

Программа:
1. Обзор курса. Типы решаемых задач.
2. Окружение Python. Введение в Python, Numpy, Pandas, Sklearn. API Sklearn.
3. Обзор других инструментов анализа данных.
Оценить занятие
2
0
Необходимые понятия из мат. анализа и линейной алгебры
Цели:
Участники освоят весь необходмый для данного курса материал из линейной алгебры и математического анализа: научатся решать задачи на собсвенные числа и собственные вектора матриц, находить производные функций и матричных выражений и применять это для задач оптимизации функций, эффективно применять данные алгоритмы в python.


Программа:
1. Линейная алгебра: Вектор, матрица, определитель матрицы, обратная матрица, собственные числа и вектора, норма, разложения матрицы (по собственным векторам, SVD).
2. Мат. анализ: Производная, интеграл, производные матричных выражений, якобиан, дифференцирование сложной функции.
3. Оптимизация: выпуклая, поиск глобального экстремума.
4. Типы данных в Python и векторизация вычислений (примеры + время работы).
Оценить занятие
1
0
Домашние задания: 1
ДЗ
Работы с данными в библиотеках numpy и pandas. Задания на понимание принципов работы библиотек numpy и pandas: создание, индексация, фильтрация, агрегация. См. ipython notebook homework.ipynb.
Оценить ДЗ
0
0
Необходимые понятия из теории вероятности
Цели:
Участники изучат необходимые для курса основы теории вероятности: случайная величина, основные виды распределений случайных величин, научатся считать матожидание, дисперсию случайных величин. Узнают как эффективно делать семплирование из распределений, научатся реализовывать данные алгоритмы на языке python.


Программа:
1. Теория вероятности: вероятность (частотная и Байесовская трактовки), случайные величины, примеры распределений, мат. ожидание и т.д.
2. Экспоненциальное семейство распределений.
3. Многомерное Гауссово распределение.
4. Основы статистики.
5. Сэмплинг из распределения (метод Гиббса, идея МСМС).
6. Примеры на Python.
Оценить занятие
1
1
Визуализация данных и описательный анализ
Цели:
Участники научатся делать описательный анализ данных с помощью библиотеки pandas и визуализацию данных с помощью различных библиотек python (matplotlib, seaborn, plotly, bokeh)

Программа:
1. Визуализация на matplotlib, seaborn, plotly, bokeh.
2. Описательный анализ с помощью pandas.
Оценить занятие
3
0
Домашние задания: 1
ДЗ
Визуализация данных. 1. Построить различные виды графиков с помощью одной из библиотек для визуализации в python (matplotlib, seaborn, plotly, bokeh). См. ipython notebook homework.ipynb.
2. Построить различные типы модельных датасетов с помощью sklearn и визуализировать их.
Оценить ДЗ
0
0
Обзор машинного обучения
Цели:
Участники научатся классифицировать задачи машинного обучения по типам. Освоят базовую терминологию МО.

Программа:
1. Типы задач: с учителем, без учителя и т.д. Примеры.
2. Пример алгоритма: kNN.
3. Подходы к ML: вероятностная трактовка (распределения + лосс функция), теоретическое ML (сразу ERM + лосс функция и выводим его характеристики все остальное время).
4. Функции потерь: LMS, CE.
5. Оценка качества алгоритма, кросс-валидация. (на примере kNN)
Оценить занятие
0
0
Обучение с учителем. Линейная регрессия и инструменты ML на Python.
Цели:
Участники поймут концепцию дискриминативных и генеративных моделей в МО. Научатся пользоваться алгоримом линейной регрессии на модельных задачах с помощью библиотеки sklearn.

Программа:
1. Вероятностная трактовка ML. Генеративные и дискриминативные модели. MLE, MAP.
2. Дискриминативная модель: линейная регрессия, feature map, регуляризация.
3. Пример решения линейной регрессии.
Оценить занятие
0
0
Домашние задания: 1
ДЗ
Обучение с учителем. Линейная регрессия.. 1. Скачать датасет Х из UCI Machine Learning repository.
2. Обучить простую модель линейной регресии на исходных признаков.
3. С помощью feature mapping реализовать более сложную модель.
4. Попробовать различные виды регуляризации.
5. Сделать отбор признаков и сформулировать выводы.
Оценить ДЗ
0
0
Обучение с учителем. Логистическая регрессия.
Цели:
Участники поймут алгоритм логистической регрессии. Научатся его применять на модельных данных с помощью библиотеки sklearn.

Программа:
1. Дискриминативная модель: логистическая регрессия.
2. Регуляризация, вероятностная трактовка.
3. Вопросы оптимизации (выпуклая задача, как на практике решается эта задача оптимизации).
4. Мультиклассовая логистическая регрессия.
5. Пример в sklearn.
Оценить занятие
0
0
Домашние задания: 1
ДЗ
Реализация алгоритма логистической регрессии на простых данных. 1. Скачать датасет Х.
2. Реализовать алгоритм логистической регрессии. Подобрать гиперпараметры, натренировать модель.
3. Натренировать модель используя библиотеку skelarn.
Оценить ДЗ
0
0
Обучение с учителем. Генеративные модели.
Цели:
Участники поймут концепцию генеративных моделей. Научатся применять некоторые алгоримы из этого класса (NB, GDA, LDA) с помощью библиотеки sklearn на модельных примерах.

Программа:
1. Наивный байесовский классификатор (NB).
2. Гауссовы модели (GDA, LDA). Форма разделяющей поверхности.
Оценить занятие
0
0
Домашние задания: 1
ДЗ
Обучение с учителем. Простейшие дискриминативные и генеративные модели.. 1. Скачать датасеты X и Y на задачу классификации из банка датасетов: UCI Machine Learning repository. Датасеты отличаются по размеру тренировочной выборки не менее чем в 10 раз.
2. Обучить на обоих датасетах логистическую регрессию.
3. Обучить на обоих датасетах наивный байесовский классификатор.
4. Сравнить результаты и сделать выводы.
Оценить ДЗ
0
0
Продвинутые алгоритмы машинного обучения
Оценить модуль
0
0
Обучение без учителя. Методы кластеризации
1. Метод k-means.
2. Иерархическая кластеризация.
3. Метод DBSCAN.
Оценить занятие
0
0
Обучение без учителя. Expectation maximization(EM) алгоритм
1. EM алгоритм для смеси гауссиан.
2. EM алгоритм для смеси гауссиан с неизвестным количеством компонент.
Оценить занятие
0
0
Домашние задания: 1
ДЗ
Реализация алгоритма кластеризации. 1. Необходимо самостоятельно реализовать один из алгоритмов кластеризации:
- EM алгоритм для смеси гауссиан
- K-means
- DBSCAN
2. Проверить корректность работы алгоритма на датасете iris
3. Сравнить время работы и результат с реализацие sklearn
Оценить ДЗ
0
0
Обучение без учителя. Методы уменьшения размерности
1. Метод главных компонент (Principle component analysis).
2. Метод t-sne.
3. Примеры визуализации с помощью метода t-sne.
Оценить занятие
0
0
Домашние задания: 1
ДЗ
Применение снижения размерности для использования в модели
Оценить ДЗ
0
0
Отбор признаков и выбор модели
1. Bias/variance tradeoff.
2. Отбор признаков: преобразования признаков, выбор части признаков.
3. Выбор модели. Байесовский выбор модели, BIC.
Оценить занятие
0
0
Домашние задания: 1
ДЗ
Преобразование набора данных и подбор фич.. Для тренировочных данных сделать следующее:
1) Провести описательный анализ данных, понять как распредены разные признаки
2) Заполнить отсутсвующие значения
3) Преобразовать признаки стандартными способами (label encoding, one hot encoding, scaling)
4) Придумать новые признаки

Проверить для каждого этапа как меняется ошибка на тестовых данных
Оценить ДЗ
0
0
Обучение с учителем. Метод опорных векторов
1. Метод опорных векторов(SVM), интерпретация.
2. Случай линейно неразделимых данных.
3. kernel trick, representer theorem, примеры ядер.
4. Пример SVM в sklearn.
Оценить занятие
0
0
Обучение с учителем. Деревья решений
1. Классификация и регрессия с помощью деревьев решений.
2. Обзор алгоритмов. Алгоритм CART. Выбор оптимального сплита, суррогатный сплит.
3. Обзор реализации в sklearn.
Оценить занятие
0
0
Домашние задания: 1
ДЗ
Реализация алгоритма дерева решений на простых данных. Необходимо реализовать алгоритм дерева решения для задачи регрессии или классификации и сравнить результат с алгоритмом из библиотеки sklearn
Оценить ДЗ
0
0
Обучение с учителем. Ансамбли моделей.
1. Ансамблирование.
2. Случайный лес.
3. Бустинг, бэггинг, стекинг, блендинг.
Оценить занятие
0
0
Градиентный бустинг
1. Градиентный бустинг теория
2. Примеры библиотек: xgboost, catboost, lightgbm
Оценить занятие
0
0
Домашние задания: 1
ДЗ
Градиентный бустинг и ансамбль моделей. На тестовых данных сравнить ошибку, время работы различных алгоримов градиентного бустинга
1. Сделать описательный анализ данных (как распределены фичи, сколько пропущенных значений)
2. Пробразовать фичи, сделать onehot_encoding, target_encoding
3.Обучить алгоритмы градиентного бустинга xgboost, ligbm, catboost, земерить время обучения, ошибку на валидационных данных
4. Построить ансамбль моделей и замерить ошибку на валидационных данных
Оценить ДЗ
0
0
Применение методов машинного обучения к разным типам данных (текст, рекомендации, графы, временные ряды)
Оценить модуль
0
0
Анализ текстовых данных. Часть 1
1. Сбор данных из открытых источников.
2. Очистка данных, подготовка данных для анализа.
3. Задача обработки текста. Введение, обзор задач, токенизация, лемматизация. TF-IDF.
4. Обзор библиотек для Python для работы с русским и английским языками.
Оценить занятие
0
0
Анализ текстовых данных. Часть 2
1. Выделение объектов в тексте.
2. Word2vec. Fast text.
3. Анализ тональности.
4. Автоматическое реферирование и тэгирование, классификация текстов.
Оценить занятие
0
0
Домашние задания: 1
ДЗ
Реализация процесса сбора данных через API. Реализация процесса сбора данных через API vkontakte.
Преобразование текста, подготовка текста для анализа.
Применение машинного обучения для предсказания характеристик пользователей
Оценить ДЗ
0
0
Анализ текстовых данных. Часть 3. Тематическое моделирование
1. метод pLSA.
2. метод LDA.
3. Применеие метода LDA для тематического моделирования новостных и научных статей
Оценить занятие
0
0
Рекомендательные системы
1. Коллаборативная фильтрация основанная на схожести пользователей и товаров.
2. Коллаборативная фильтрация основанная на факторизации матриц.
3. Проблема "холодного старта", контентная фильтрация, гибридные подходы.
4. Ассоциативные правила.
5. Метрики оценки качества рекомендательной системы.
Оценить занятие
0
0
Домашние задания: 1
ДЗ
Сравнение разных алгоритмов рекомендательных систем. 1. На тренировочных данных с рейтингами фильмов обучить следующие алгоритмы рекомендательных систем:
- user based collaborative filtering
- item based collaborative filtering
- 3. SVD без bias
- SVD
- Факторизационные машины с дополнительной информацией по пользователям и предметом рекомендаций и эффектом времени
2. Сравнить разные алгоритмы на валидационных данных и сделать выводы
Оценить ДЗ
0
0
Анализ временных рядов
1. Постановка задачи.
2. Экспоненциальное сглаживание.
3. Стационарность. SARIMA. Выбор признаков во временных рядах.
4. Применение моделей машинного обучения
Оценить занятие
0
0
Домашние задания: 1
ДЗ
Предсказание временных рядов. 1. Скачать датасет Х.
2. Натренировать модель ARIMA, перебором подобрать наилучший набор параметров.
3. Натренировать одну из ML моделей на предсказание следующего значения временного ряда.
Оценить ДЗ
0
0
Алгоритмы на графах
Социальные сети, выделение сообществ
Оценить занятие
0
0
АБ тестирование
1. Тестирование гипотез. Постановка задачи.
2. Терминология, мощность, статистическая значимость.
3. Параметрические методы: t-критерий, 1p, 2p proportion.
4. Непараметрические методы bootstrap
Оценить занятие
0
0
Многорукие бандиты
1. Постановка задачи и терминология
2. Проблема exploration exploitation
3. Примеры
Оценить занятие
0
0
Домашние задания: 1
ДЗ
Многорукие бандиты. 1. Реализовать среду (env) для работы с многорукими бандитами.
2. Построить график награды для различных видов exploration policy.
3. Проанализировать графики в п. 2 с теоретической т.з.
Оценить ДЗ
0
0
Нейронные сети и глубокое обучение
Оценить модуль
0
0
Простейшие нейронные сети и метод обратного распространения ошибки.
1. Начальные сведения о нейронных сетях.
2. Теорема об универсальной аппроксимации.
3. Алгоритм обратного распространения ошибки.
Оценить занятие
0
0
Обучение нейронных сетей
1. Пример к предыдущей лекции: разбор word2vec.
2. Предпосылки для глубоких нейронных сетей, представления.
3. Стохастический градиентный спуск.
Оценить занятие
0
0
Домашние задания: 1
ДЗ
Простые НС и метод обратного распространения ошибки. 1. Реализовать полносвязную сеть: два скрытых слоя с функцией активации ReLU, на выходе softmax по количеству классов (задается как параметр).
2. Обучить НС на модельный датасет "make_moons" из skelarn. Визуализировать разделяющую поверхность.
3. Обучить НС на датасете MNIST.

Оценить ДЗ
0
0
Сверточные нейронные сети ч.1
1. Структура сверточных сетей.
2. Пример на MNIST (Pytorch).
3. Обзор Pytorch.
4. Примеры на Pytorch (усложняем сеть, увеличиваем точность) -- сделать inclass соревнование на Kaggle.
Оценить занятие
0
0
Сверточные нейронные сети ч.2
1. Функции активации.
2. Регуляризация (BatchNorm, Dropout)
3. Инициализация весов.
4. Модификации SGD.
Оценить занятие
0
0
Сверточные нейронные сети ч.3
1. Ансамблирование.
2. Аугментация данных, transfer learning.
3. Использование предобученных сетей.
Оценить занятие
0
0
Домашние задания: 1
ДЗ
Сверточные сети на Pytorch. 1. Реализовать сверточную сеть заданной архитектуры на Pytorch.
2. Написать слой BatchNorm и добавить его в НС.
3. Написать оптимизатор RMSProp и сравнить с обычным SGD.
Оценить ДЗ
0
0
Рекуррентные сети ч.1
1. Простой вариант: RNN.
2. LSTM, GRU.
3. Примеры для текста (языковая модель).
Оценить занятие
0
0
Рекуррентные сети ч.2
1. Механизм внимания: пример на переводе, на картинке. Типы внимания.
2. Пример: Image captioning.
Оценить занятие
0
0
Домашние задания: 1
ДЗ
Рекуррентные сети на Pytorch. 1. Реализовать language model.
2. Выполнить задачу NER на датасете ConLL2003.
Оценить ДЗ
0
0
Примеры работы глубоких НС
1. Изображения и видео.
2. Текст: задача POS-tagging, NER, перевод.
3. Прочее.
Оценить занятие
0
0
Проектная работа
В рамках курса предусмотрена защита проекта. Проект представляет из себя программный комплекс, решающий задачу извлечения и использования знаний из реальных данных с использованием машинного обучения. Проект готовится в течение месяца и включает в себя следующие этапы:- Постановка задачи. Предлагается самостоятельно найти предметную область и обосновать применение в ней машинного обучения- Разработка данных. Одно из требований к проекту - Использование данных из открытых источников. Необходимо разработать процесс сбора и очистки данных- Поиск алгоритма и модели для решения задачи. Необходимо выполнить подготовку данных, выбрать алгоритм и подобрать параметры для построения модели- Использование модели для достижения поставленной цели. Необходимо реализовать применение разработанной модели- Построение процесса. Решение задачи необходимо оформить в единый процесс по обработке данных от источника до предсказания, не требующий участия эксперта- Обоснование процесса
Оценить модуль
0
0
Минимальные требования для прохождения курса

Базовые знания Python и отсутствие страха перед статистикой и математикой.

Преподаватели
Максим Кретов
Ведущий исследователь в лаборатории нейронных сетей и глубокого обучения (МФТИ).

Области интересов: байесовские методы в машинном обучении, обработка естественного языка.

Закончил МГУ им. М.В.Ломоносова в 2009 (химия). Кандидат физ.-мат. наук (МГУ, 2012).
Михаил Павлов
Работает ведущим разработчиком-исследователем в ООО «Дипхаклаб»

Закончил МГУ им. М.В.Ломоносова в 2009 (химия). Кандидат физ.-мат. наук (МГУ, 2013)

Опыт в отрасли: 4 года статистические методы, 2.5 года машинное обучение

Имеет публикации на воркшопах NIPS и AAAI symposium по темам, связанным с обучением с подкреплением.
Неоднократно занимал призовые места в конкурсах и хакатонах по обучению с подкреплением.

Область интересов: машинное обучение, обучение с подкреплением.
Даниил Титков
9 комментариев
2

А будут уже курсы по DataScience на Java? Очень бы хотелось видеть. Я понимаю, что моделирование не сильно отличается, а вот навык использования инструментов таких как Hadoop ApacheSpark и другие - вот это уже интересно.

0

Будут. Ищем преподавателя. Следите за новостями.

0

Когда будет готов курс ?

1

Поанируем старт на август.

0

Вит, какая цена на него будет ? хотябо примерно и заранее спасибо))

0

и ещё, какая база нужна будет для курса, горю желанием!

0

чем он будет отличатся от курса big data?

2

Добрый день. Принципиальных отличий нет, за исключением того, что в данном курсе нет тем про инструменты работы с большими данными (Spark / Hive и т.д.), которые были в четвертом модуле BigData.

0

Спасибо

Для комментирования необходимо авторизоваться