Несколько дней новогоднего волшебства:
Успейте начать обучение в 2018-ом году со скидкой до 30%!
Выбрать курс
Проходил 2 августа в 20:00

Открытый вебинар Data Scientist
Наивный байесовский классификатор

Открытый вебинар онлайн

На открытом вебинаре рассмотрим один из простейших генеративных классификаторов − наивный байесовский классификатор, в применении к задаче категоризации документов.

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

Можно просто смотреть, а можно выполнять заготовленный код для лучшего усвоения. Для этого понадобится скачать .ipynb ноутбук и настроить окружение: python3, jupyter notebook, scikit-learn, matplotlib.
Преподаватель
Максим Кретов

Запись

О курсе

Data Scientist
60 000 ₽ 42 000 ₽
5 месяцев
Начало 19 декабря
  • Знание алгоритмов машинного обучения и понимание принципов их работы.
  • Освоение современных методов и инструментов анализа и обработки данных.
  • Умение проектировать архитектуру нейросетей, создавать предсказательные модели, работать с ограниченными датасетами, проводить статистические исследования, интерпретировать результаты.
  • Способность извлекать из крупных массивов данных ценную информацию и эффективно ее использовать.
{{ employers_count }} {% pluralize employers_count 'работодатель' 'работодателя' 'работодателей' %}
...
Программа курса
Модуль 1
Введение в машинное обучение
Модуль 2
Продвинутые алгоритмы машинного обучения
Модуль 3
Применение методов машинного обучения к разным типам данных (текст, рекомендации, графы, временные ряды)
Модуль 4
Нейронные сети и глубокое обучение
Модуль 5
Проектная работа
Введение в машинное обучение
В первом модуле разберем: задачи, которые решают методы машинного обучения; необходимые темы из математического анализа, линейной алгебры и теории вероятности; базовые инструменты анализа данных в python; простые методы машинного обучения (линейная регрессия, логистическая регрессия, lDA, наивный Байес)
Базовые инструменты анализа данных в Python.
Цели:
Участники узнают, какие задачи они смогут решать по окончании курса, научатся настраивать рабочее окружение и узнают функционал базовых библиотек для работы с данными в python.

Программа:
1. Обзор курса. Типы решаемых задач.
2. Окружение Python. Введение в Python, Numpy, Pandas, Sklearn. API Sklearn.
3. Обзор других инструментов анализа данных.
19 декабря, 20:00 — 21:30
Домашние задания: 1
ДЗ
Работы с данными в библиотеках numpy и pandas и реализация библиотеки для сбора данных. см. файл homework_description.pdf
Необходимые понятия из мат. анализа и линейной алгебры
Цели:
Участники освоят весь необходмый для данного курса материал из линейной алгебры и математического анализа: научатся решать задачи на собсвенные числа и собственные вектора матриц, находить производные функций и матричных выражений и применять это для задач оптимизации функций, эффективно применять данные алгоритмы в python.


Программа:
1. Линейная алгебра: Вектор, матрица, определитель матрицы, обратная матрица, собственные числа и вектора, норма, разложения матрицы (по собственным векторам, SVD).
2. Мат. анализ: Производная, интеграл, производные матричных выражений, якобиан, дифференцирование сложной функции.
3. Оптимизация: выпуклая, поиск глобального экстремума.
4. Типы данных в Python и векторизация вычислений (примеры + время работы).
24 декабря, 20:00 — 21:30
Необходимые понятия из теории вероятности
Цели:
Участники изучат необходимые для курса основы теории вероятности: случайная величина, основные виды распределений случайных величин, научатся считать матожидание, дисперсию случайных величин. Узнают как эффективно делать семплирование из распределений, научатся реализовывать данные алгоритмы на языке python.


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

Программа:
1. Линейная регрессия - метод наименьших квадратов
2. Вероятностная трактовка линейной регрессии
3. Полиномиальная регрессия
3. Регуляризация в линейной регрессии
9 января, 20:00 — 21:30
Feature engineering
1. Отбор признаков.
2. Преобразование исходных данных в подходящий для модели формат.
3. Преобразование признаков для повышения точности модели.
4. Выбор части признаков.
28 января, 20:00 — 21:30
Визуализация
Цели:
Участники освоят основные библиотеки для визуализации данных в python, будут правильно выбирать виды графиков для визуализации данных разных типов.

Программа:
1. Визуализация на matplotlib, seaborn, plotly, bokeh.
2. Визуализация геоданных на карте мира. Приемы для визуализации плотных данных.
3. Визуализация для поиска корреляций
14 января, 20:00 — 21:30
Домашние задания: 1
ДЗ
Основное домашнее задание. https://docs.google.com/document/d/1DcyGITpYr-zYq2U8CtZcQqs82xbyuIXY9Ui_22tfMjk/edit?usp=sharing
Обучение с учителем. Логистическая регрессия
Реализации логистической регрессии с помощью метода стохастического градиентного спуска
16 января, 20:00 — 21:30
Домашние задания: 1
ДЗ
Обучение с учителем. Логистическая регрессия.. См. homework.ipynb
Задача классификации. Метод ближайших соседей (kNN)
Алгоритм kNN. Влияние нормализации данных в kNN. Структуры данных для оптимизации kNN. Кросс валидация. Методы оценки качества алгоритмов классификации.
21 января, 20:00 — 21:30
Продвинутые алгоритмы машинного обучения
Метод опорных векторов
1. Метод опорных векторов(SVM), интерпретация.
2. Случай линейно неразделимых данных.
3. kernel trick, representer theorem, примеры ядер.
4. Пример SVM в sklearn.
18 февраля, 20:00 — 21:30
Обучение без учителя. K-means, EM алгоритм
Обучение без учителя. Алгоритмы кластеризации, области применения. K-means. Оценка качества обучения, ограничения и подбор алгоритма для задачи. Алгоритмы с lower-bound. EM алгоритм.
23 января, 20:00 — 21:30
Домашние задания: 1
ДЗ
Обучение без учителя. Кластеризация. См. homework-clustering.ipynb

Реализовать один из алгоритмов кластеризации.
Применение готовых алгоритмов кластеризации к датасету с Kaggle
Иерархическая кластеризация, DB-Scan
1. Иерархическая кластеризация
2. DB-Scan.
3. Optics. Спектральная кластеризация.
30 января, 20:00 — 21:30
Методы уменьшения размерности
1. Метод главных компонент (Principle component analysis).
2. Метод t-sne.
3. Примеры визуализации с помощью метода t-sne.
4 февраля, 20:00 — 21:30
Деревья решений
1. Классификация и регрессия с помощью деревьев решений.
2. Обзор алгоритмов. Алгоритм CART. Выбор оптимального сплита, суррогатный сплит.
3. Обзор реализации в sklearn.
6 февраля, 20:00 — 21:30
Домашние задания: 1
ДЗ
Реализация алгоритма дерева решений на простых данных. Необходимо реализовать алгоритм дерева решения для задачи регрессии или классификации и сравнить результат с алгоритмом из библиотеки sklearn
Ансамбли моделей.
1. Ансамблирование.
2. Случайный лес.
3. Бустинг, бэггинг, стекинг, блендинг.
11 февраля, 20:00 — 21:30
Градиентный бустинг
1. Градиентный бустинг теория
2. Примеры библиотек: xgboost, catboost, lightgbm
3. Стекинг, блендинг
13 февраля, 20:00 — 21:30
Домашние задания: 1
ДЗ
Применение бустинга для построения лучшей модели
Поиск выбросов в данных
25 февраля, 20:00 — 21:30
Применение методов машинного обучения к разным типам данных (текст, рекомендации, графы, временные ряды)
Анализ текстовых данных. Часть 1
1. Сбор данных из открытых источников.
2. Очистка данных, подготовка данных для анализа.
3. Задача обработки текста. Введение, обзор задач, токенизация, лемматизация. TF-IDF.
4. Обзор библиотек для Python для работы с русским и английским языками.
27 февраля, 20:00 — 21:30
Анализ текстовых данных. Часть 2
1. Выделение объектов в тексте.
2. Word2vec. Fast text.
3. Анализ тональности.
4. Автоматическое реферирование и тэгирование, классификация текстов.
4 марта, 20:00 — 21:30
Домашние задания: 1
ДЗ
Реализация процесса сбора данных через API. Реализация процесса сбора данных через API VKontakte.
Преобразование текста, подготовка текста для анализа.
Применение машинного обучения для предсказания характеристик пользователей.
Анализ текстовых данных. Часть 3. Тематическое моделирование
1. метод pLSA.
2. метод LDA.
3. Применеие метода LDA для тематического моделирования новостных и научных статей
6 марта, 20:00 — 21:30
Рекомендательные системы
1. Коллаборативная фильтрация основанная на схожести пользователей и товаров.
2. Коллаборативная фильтрация основанная на факторизации матриц.
3. Проблема "холодного старта", контентная фильтрация, гибридные подходы.
4. Ассоциативные правила.
5. Метрики оценки качества рекомендательной системы.
11 марта, 20:00 — 21:30
Домашние задания: 1
ДЗ
Сравнение разных алгоритмов рекомендательных систем. 1. На тренировочных данных с рейтингами фильмов обучить следующие алгоритмы рекомендательных систем:
- user based collaborative filtering
- item based collaborative filtering
- 3. SVD без bias
- SVD
- Факторизационные машины с дополнительной информацией по пользователям и предметом рекомендаций и эффектом времени
2. Сравнить разные алгоритмы на валидационных данных и сделать выводы
Анализ временных рядов
1. Постановка задачи.
2. Экспоненциальное сглаживание.
3. Стационарность. SARIMA. Выбор признаков во временных рядах.
4. Применение моделей машинного обучения
13 марта, 20:00 — 21:30
Домашние задания: 1
ДЗ
Предсказание временных рядов. 1. Скачать датасет Х.
2. Натренировать модель ARIMA, перебором подобрать наилучший набор параметров.
3. Натренировать одну из ML моделей на предсказание следующего значения временного ряда.
Алгоритмы на графах
Социальные сети, выделение сообществ
18 марта, 20:00 — 21:30
АБ тестирование
1. Тестирование гипотез. Постановка задачи.
2. Терминология, мощность, статистическая значимость.
3. Параметрические методы: t-критерий, 1p, 2p proportion.
4. Непараметрические методы bootstrap
20 марта, 20:00 — 21:30
Методы оптимизации
SGD, модификации SGD
20 февраля, 20:00 — 21:30
Нейронные сети и глубокое обучение
Простейшие нейронные сети и метод обратного распространения ошибки.
1. Начальные сведения о нейронных сетях.
2. Теорема об универсальной аппроксимации.
3. Алгоритм обратного распространения ошибки.
25 марта, 20:00 — 21:30
Обучение нейронных сетей
1. Пример к предыдущей лекции: разбор word2vec.
2. Предпосылки для глубоких нейронных сетей, представления.
3. Стохастический градиентный спуск.
27 марта, 20:00 — 21:30
Домашние задания: 1
ДЗ
Простые НС и метод обратного распространения ошибки. 1. Реализовать полносвязную сеть: два скрытых слоя с функцией активации ReLU, на выходе softmax по количеству классов (задается как параметр).
2. Обучить НС на модельный датасет "make_moons" из skelarn. Визуализировать разделяющую поверхность.
3. Обучить НС на датасете MNIST.

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

Преподаватель

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

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

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