Проходил 2 августа в 20:00

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

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

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

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

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

Запись

О курсе

Data Scientist
50 000 ₽
5 месяцев
Начало 23 августа
  • Знание алгоритмов машинного обучения и понимание принципов их работы.
  • Освоение современных методов и инструментов анализа и обработки данных.
  • Умение проектировать архитектуру нейросетей, создавать предсказательные модели, работать с ограниченными датасетами, проводить статистические исследования, интерпретировать результаты.
  • Способность извлекать из крупных массивов данных ценную информацию и эффективно ее использовать.
6 работодателей
Лучшие выпускники могут рассчитывать на ...
Программа курса
Модуль 1
Введение в машинное обучение
Модуль 2
Продвинутые алгоритмы машинного обучения
Модуль 3
Применение методов машинного обучения к разным типам данных (текст, рекомендации, графы, временные ряды)
Модуль 4
Нейронные сети и глубокое обучение
Модуль 5
Проектная работа
Введение в машинное обучение
В первом модуле разберем: задачи, которые решают методы машинного обучения; необходимые темы из математического анализа, линейной алгебры и теории вероятности; базовые инструменты анализа данных в python; простые методы машинного обучения (линейная регрессия, логистическая регресси, lda, наивный баесс)
Базовые инструменты анализа данных в Python.
Цели:
Участники узнают, какие задачи они смогут решать по окончании курса, научатся настраивать рабочее окружение и узнают функционал базовых библиотек для работы с данными в python.

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


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


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

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

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

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

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

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

Проверить для каждого этапа как меняется ошибка на тестовых данных
Обучение с учителем. Метод опорных векторов
1. Метод опорных векторов(SVM), интерпретация.
2. Случай линейно неразделимых данных.
3. kernel trick, representer theorem, примеры ядер.
4. Пример SVM в sklearn.
4 октября, 20:00 — 21:30
Обучение с учителем. Деревья решений
1. Классификация и регрессия с помощью деревьев решений.
2. Обзор алгоритмов. Алгоритм CART. Выбор оптимального сплита, суррогатный сплит.
3. Обзор реализации в sklearn.
8 октября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Реализация алгоритма дерева решений на простых данных. Необходимо реализовать алгоритм дерева решения для задачи регрессии или классификации и сравнить результат с алгоритмом из библиотеки sklearn
Обучение с учителем. Ансамбли моделей.
1. Ансамблирование.
2. Случайный лес.
3. Бустинг, бэггинг, стекинг, блендинг.
11 октября, 20:00 — 21:30
Градиентный бустинг
1. Градиентный бустинг теория
2. Примеры библиотек: xgboost, catboost, lightgbm
15 октября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Градиентный бустинг и ансамбль моделей. На тестовых данных сравнить ошибку, время работы различных алгоримов градиентного бустинга
1. Сделать описательный анализ данных (как распределены фичи, сколько пропущенных значений)
2. Пробразовать фичи, сделать onehot_encoding, target_encoding
3.Обучить алгоритмы градиентного бустинга xgboost, ligbm, catboost, земерить время обучения, ошибку на валидационных данных
4. Построить ансамбль моделей и замерить ошибку на валидационных данных
Применение методов машинного обучения к разным типам данных (текст, рекомендации, графы, временные ряды)
Анализ текстовых данных. Часть 1
1. Сбор данных из открытых источников.
2. Очистка данных, подготовка данных для анализа.
3. Задача обработки текста. Введение, обзор задач, токенизация, лемматизация. TF-IDF.
4. Обзор библиотек для Python для работы с русским и английским языками.
18 октября, 20:00 — 21:30
Анализ текстовых данных. Часть 2
1. Выделение объектов в тексте.
2. Word2vec. Fast text.
3. Анализ тональности.
4. Автоматическое реферирование и тэгирование, классификация текстов.
22 октября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Реализация процесса сбора данных через API. Реализация процесса сбора данных через API vkontakte.
Преобразование текста, подготовка текста для анализа.
Применение машинного обучения для предсказания характеристик пользователей
Анализ текстовых данных. Часть 3. Тематическое моделирование
1. метод pLSA.
2. метод LDA.
3. Применеие метода LDA для тематического моделирования новостных и научных статей
25 октября, 20:00 — 21:30
Рекомендательные системы
1. Коллаборативная фильтрация основанная на схожести пользователей и товаров.
2. Коллаборативная фильтрация основанная на факторизации матриц.
3. Проблема "холодного старта", контентная фильтрация, гибридные подходы.
4. Ассоциативные правила.
5. Метрики оценки качества рекомендательной системы.
29 октября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Сравнение разных алгоритмов рекомендательных систем. 1. На тренировочных данных с рейтингами фильмов обучить следующие алгоритмы рекомендательных систем:
- user based collaborative filtering
- item based collaborative filtering
- 3. SVD без bias
- SVD
- Факторизационные машины с дополнительной информацией по пользователям и предметом рекомендаций и эффектом времени
2. Сравнить разные алгоритмы на валидационных данных и сделать выводы
Анализ временных рядов
1. Постановка задачи.
2. Экспоненциальное сглаживание.
3. Стационарность. SARIMA. Выбор признаков во временных рядах.
4. Применение моделей машинного обучения
1 ноября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Предсказание временных рядов. 1. Скачать датасет Х.
2. Натренировать модель ARIMA, перебором подобрать наилучший набор параметров.
3. Натренировать одну из ML моделей на предсказание следующего значения временного ряда.
Алгоритмы на графах
Социальные сети, выделение сообществ
5 ноября, 20:00 — 21:30
АБ тестирование
1. Тестирование гипотез. Постановка задачи.
2. Терминология, мощность, статистическая значимость.
3. Параметрические методы: t-критерий, 1p, 2p proportion.
4. Непараметрические методы bootstrap
8 ноября, 20:00 — 21:30
Многорукие бандиты
1. Постановка задачи и терминология
2. Проблема exploration exploitation
3. Примеры
12 ноября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Многорукие бандиты. 1. Реализовать среду (env) для работы с многорукими бандитами.
2. Построить график награды для различных видов exploration policy.
3. Проанализировать графики в п. 2 с теоретической т.з.
Нейронные сети и глубокое обучение
Простейшие нейронные сети и метод обратного распространения ошибки.
1. Начальные сведения о нейронных сетях.
2. Теорема об универсальной аппроксимации.
3. Алгоритм обратного распространения ошибки.
15 ноября, 20:00 — 21:30
Обучение нейронных сетей
1. Пример к предыдущей лекции: разбор word2vec.
2. Предпосылки для глубоких нейронных сетей, представления.
3. Стохастический градиентный спуск.
19 ноября, 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.
22 ноября, 20:00 — 21:30
Сверточные нейронные сети ч.2
1. Функции активации.
2. Регуляризация (BatchNorm, Dropout)
3. Инициализация весов.
4. Модификации SGD.
26 ноября, 20:00 — 21:30
Сверточные нейронные сети ч.3
1. Ансамблирование.
2. Аугментация данных, transfer learning.
3. Использование предобученных сетей.
29 ноября, 20:00 — 21:30
Домашние задания: 1
ДЗ
Сверточные сети на Pytorch. 1. Реализовать сверточную сеть заданной архитектуры на Pytorch.
2. Написать слой BatchNorm и добавить его в НС.
3. Написать оптимизатор RMSProp и сравнить с обычным SGD.
Рекуррентные сети ч.1
1. Простой вариант: RNN.
2. LSTM, GRU.
3. Примеры для текста (языковая модель).
3 декабря, 20:00 — 21:30
Рекуррентные сети ч.2
1. Механизм внимания: пример на переводе, на картинке. Типы внимания.
2. Пример: Image captioning.
6 декабря, 20:00 — 21:30
Домашние задания: 1
ДЗ
Рекуррентные сети на Pytorch. 1. Реализовать language model.
2. Выполнить задачу NER на датасете ConLL2003.
Примеры работы глубоких НС
1. Изображения и видео.
2. Текст: задача POS-tagging, NER, перевод.
3. Прочее.
10 декабря, 20:00 — 21:30
Проектная работа
В рамках курса предусмотрена защита проекта.
Проект представляет из себя программный комплекс, решающий задачу извлечения и использования знаний из реальных данных с использованием машинного обучения.
Проект готовится в течение месяца и включает в себя следующие этапы:
- Постановка задачи. Предлагается самостоятельно найти предметную область и обосновать применение в ней машинного обучения
- Разработка данных. Одно из требований к проекту - Использование данных из открытых источников. Необходимо разработать процесс сбора и очистки данных
- Поиск алгоритма и модели для решения задачи. Необходимо выполнить подготовку данных, выбрать алгоритм и подобрать параметры для построения модели
- Использование модели для достижения поставленной цели. Необходимо реализовать применение разработанной модели
- Построение процесса. Решение задачи необходимо оформить в единый процесс по обработке данных от источника до предсказания, не требующий участия эксперта
- Обоснование процесса

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

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

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

Закончил МГУ им. М.В.Ломоносова в 2009 (химия). Кандидат физ.-мат. наук (МГУ, 2012).
Преподаватель курсов:
Data Scientist