Отправь повестку себе и другу,
Получи патроны для выполнения боевых образовательных мероприятий!
Принять участие
Проходил 2 августа 2018 года в 20:00

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

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

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

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

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

Запись

О курсе

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

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


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


Программа:
1. Теория вероятности: вероятность (частотная и Байесовская трактовки), случайные величины, примеры распределений, мат. ожидание и т.д.
2. Экспоненциальное семейство распределений.
3. Основы статистики.
4. Примеры на Python.
2 апреля, 20:00 — 21:30
Визуализация
Цели:
Участники освоят основные библиотеки для визуализации данных в python, будут правильно выбирать виды графиков для визуализации данных разных типов.
6 апреля, 10:00 — 11:30
Домашние задания: 1
ДЗ
Группировка и визуализация данных в Python + EDA. https://drive.google.com/file/d/1UgVyxmOumex9-gFTnX583KtCWCIdkWyQ/view?usp=sharing
Feature engineering
1. Отбор признаков.
2. Преобразование исходных данных в подходящий для модели формат.
3. Преобразование признаков для повышения точности модели.
4. Выбор части признаков.
9 апреля, 20:00 — 21:30
Задача классификации. Метод ближайших соседей (kNN)
Алгоритм kNN. Влияние нормализации данных в kNN. Структуры данных для оптимизации kNN. Кросс валидация. Методы оценки качества алгоритмов классификации.
13 апреля, 10:00 — 11:30
Линейная регрессия
Цели:
Участники научатся делать описательный анализ данных с помощью библиотеки pandas и визуализацию данных с помощью различных библиотек python (matplotlib, seaborn, plotly, bokeh)

Программа:
1. Линейная регрессия - метод наименьших квадратов
2. Вероятностная трактовка линейной регрессии
3. Полиномиальная регрессия
3. Регуляризация в линейной регрессии
16 апреля, 20:00 — 21:30
Обучение с учителем. Логистическая регрессия
Реализации логистической регрессии с помощью метода стохастического градиентного спуска
20 апреля, 10:00 — 11:30
Домашние задания: 1
ДЗ
Обучение с учителем. Логистическая регрессия.. См. homework.ipynb
Практическое занятие по темам, изученным в 1 модуле
23 апреля, 20:00 — 21:30
Продвинутые алгоритмы машинного обучения
Метод опорных векторов
1. Метод опорных векторов(SVM), интерпретация.
2. Случай линейно неразделимых данных.
3. kernel trick, representer theorem, примеры ядер.
4. Пример SVM в sklearn.
27 апреля, 10:00 — 11:30
Деревья решений
1. Классификация и регрессия с помощью деревьев решений.
2. Обзор алгоритмов. Алгоритм CART. Выбор оптимального сплита, суррогатный сплит.
3. Обзор реализации в sklearn.
30 апреля, 20:00 — 21:30
Домашние задания: 1
ДЗ
Реализация алгоритма дерева решений на простых данных. Необходимо реализовать алгоритм дерева решения для задачи регрессии или классификации и сравнить результат с алгоритмом из библиотеки sklearn
Обучение без учителя. K-means, EM алгоритм
Обучение без учителя. Алгоритмы кластеризации, области применения. K-means. Оценка качества обучения, ограничения и подбор алгоритма для задачи. Алгоритмы с lower-bound. EM алгоритм.
4 мая, 10:00 — 11:30
Домашние задания: 1
ДЗ
Обучение без учителя. Кластеризация. См. homework-clustering.ipynb

Реализовать один из алгоритмов кластеризации.
Применение готовых алгоритмов кластеризации к датасету с Kaggle
Иерархическая кластеризация, DB-Scan
1. Иерархическая кластеризация
2. DB-Scan.
3. Optics. Спектральная кластеризация.
7 мая, 20:00 — 21:30
Поиск выбросов в данных
11 мая, 10:00 — 11:30
Методы уменьшения размерности
1. Метод главных компонент (Principle component analysis).
2. Метод t-sne.
3. Примеры визуализации с помощью метода t-sne.
14 мая, 20:00 — 21:30
Ансамбли моделей.
1. Ансамблирование.
2. Случайный лес.
3. Бустинг, бэггинг, стекинг, блендинг.
18 мая, 10:00 — 11:30
Градиентный бустинг
1. Градиентный бустинг теория
2. Примеры библиотек: xgboost, catboost, lightgbm
3. Стекинг, блендинг
21 мая, 20:00 — 21:30
Домашние задания: 1
ДЗ
Применение бустинга для построения лучшей модели
Практическое занятие по темам, изученным во 2 модуле
25 мая, 10:00 — 11:30
Применение методов машинного обучения к разным типам данных (текст, рекомендации, графы, временные ряды)
Анализ текстовых данных. Часть 1
1. Сбор данных из открытых источников.
2. Очистка данных, подготовка данных для анализа.
3. Задача обработки текста. Введение, обзор задач, токенизация, лемматизация. TF-IDF.
4. Обзор библиотек для Python для работы с русским и английским языками.
28 мая, 20:00 — 21:30
Анализ текстовых данных. Часть 2
1. Выделение объектов в тексте.
2. Word2vec. Fast text.
3. Анализ тональности.
4. Автоматическое реферирование и тэгирование, классификация текстов.
1 июня, 10:00 — 11:30
Домашние задания: 1
ДЗ
Реализация процесса сбора данных через API. Реализация процесса сбора данных через API VKontakte.
Преобразование текста, подготовка текста для анализа.
Применение машинного обучения для предсказания характеристик пользователей.
Анализ текстовых данных. Часть 3. Тематическое моделирование
1. метод pLSA.
2. метод LDA.
3. Применеие метода LDA для тематического моделирования новостных и научных статей
4 июня, 20:00 — 21:30
Рекомендательные системы
1. Коллаборативная фильтрация основанная на схожести пользователей и товаров.
2. Коллаборативная фильтрация основанная на факторизации матриц.
3. Проблема "холодного старта", контентная фильтрация, гибридные подходы.
4. Ассоциативные правила.
5. Метрики оценки качества рекомендательной системы.
8 июня, 10:00 — 11:30
Домашние задания: 1
ДЗ
Сравнение разных алгоритмов рекомендательных систем. 1. На тренировочных данных с рейтингами фильмов обучить следующие алгоритмы рекомендательных систем:
- user based collaborative filtering
- item based collaborative filtering
- 3. SVD без bias
- SVD
- Факторизационные машины с дополнительной информацией по пользователям и предметом рекомендаций и эффектом времени
2. Сравнить разные алгоритмы на валидационных данных и сделать выводы
Анализ временных рядов
1. Постановка задачи.
2. Экспоненциальное сглаживание.
3. Стационарность. SARIMA. Выбор признаков во временных рядах.
4. Применение моделей машинного обучения
11 июня, 20:00 — 21:30
Домашние задания: 1
ДЗ
Предсказание временных рядов. 1. Скачать датасет Х.
2. Натренировать модель ARIMA, перебором подобрать наилучший набор параметров.
3. Натренировать одну из ML моделей на предсказание следующего значения временного ряда.
Алгоритмы на графах
Социальные сети, выделение сообществ
15 июня, 10:00 — 11:30
АБ тестирование
1. Тестирование гипотез. Постановка задачи.
2. Терминология, мощность, статистическая значимость.
3. Параметрические методы: t-критерий, 1p, 2p proportion.
4. Непараметрические методы bootstrap
18 июня, 20:00 — 21:30
Методы оптимизации
SGD, модификации SGD
22 июня, 10:00 — 11:30
Практическое занятие по темам, изученным в 3 модуле
25 июня, 20:00 — 21:30
Нейронные сети и глубокое обучение
Простейшие нейронные сети и метод обратного распространения ошибки.
1. Начальные сведения о нейронных сетях.
2. Теорема об универсальной аппроксимации.
3. Алгоритм обратного распространения ошибки.
29 июня, 10:00 — 11:30
Обучение нейронных сетей
1. Пример к предыдущей лекции: разбор word2vec.
2. Предпосылки для глубоких нейронных сетей, представления.
3. Стохастический градиентный спуск.
2 июля, 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.
6 июля, 10:00 — 11:30
Сверточные нейронные сети ч.2
1. Функции активации.
2. Регуляризация (BatchNorm, Dropout)
3. Инициализация весов.
4. Модификации SGD.
9 июля, 20:00 — 21:30
Сверточные нейронные сети ч.3
1. Ансамблирование.
2. Аугментация данных, transfer learning.
3. Использование предобученных сетей.
13 июля, 10:00 — 11:30
Домашние задания: 1
ДЗ
Сверточные сети на Pytorch. 1. Реализовать сверточную сеть заданной архитектуры на Pytorch.
2. Написать слой BatchNorm и добавить его в НС.
3. Написать оптимизатор RMSProp и сравнить с обычным SGD.
Рекуррентные сети ч.1
1. Простой вариант: RNN.
2. LSTM, GRU.
3. Примеры для текста (языковая модель).
16 июля, 20:00 — 21:30
Рекуррентные сети ч.2
1. Механизм внимания: пример на переводе, на картинке. Типы внимания.
2. Пример: Image captioning.
20 июля, 10:00 — 11:30
Домашние задания: 1
ДЗ
Рекуррентные сети на Pytorch. 1. Реализовать language model.
2. Выполнить задачу NER на датасете ConLL2003.
Примеры работы глубоких НС
1. Изображения и видео.
2. Текст: задача POS-tagging, NER, перевод.
3. Прочее.
23 июля, 20:00 — 21:30
Практическое занятие по темам, изученным в 4 модуле
27 июля, 10:00 — 11:30
Проектная работа
В рамках курса предусмотрена защита проекта.

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

Проект готовится в течение месяца и включает в себя следующие этапы:
1. Постановка задачи. Предлагается самостоятельно найти предметную область и обосновать применение в ней машинного обучения
2. Разработка данных. Одно из требований к проекту - Использование данных из открытых источников. Необходимо разработать процесс сбора и очистки данных
3. Поиск алгоритма и модели для решения задачи. Необходимо выполнить подготовку данных, выбрать алгоритм и подобрать параметры для построения модели
4. Использование модели для достижения поставленной цели. Необходимо реализовать применение разработанной модели
5. Построение процесса. Решение задачи необходимо оформить в единый процесс по обработке данных от источника до предсказания, не требующий участия эксперта
6. Обоснование процесса
Вводное занятие по проектной работе
3 августа, 10:00 — 11:30
Домашние задания: 1
ДЗ
Проектная работа. Проект включает в себя следующие этапы:
1. Постановка задачи. Предлагается самостоятельно найти предметную область и обосновать применение в ней машинного обучения
2. Разработка данных. Одно из требований к проекту - Использование данных из открытых источников. Необходимо разработать процесс сбора и очистки данных
3. Поиск алгоритма и модели для решения задачи. Необходимо выполнить подготовку данных, выбрать алгоритм и подобрать параметры для построения модели
4. Использование модели для достижения поставленной цели. Необходимо реализовать применение разработанной модели
5. Построение процесса. Решение задачи необходимо оформить в единый процесс по обработке данных от источника до предсказания, не требующий участия эксперта
6. Обоснование процесса
Консультация по проектной работе
20 августа, 20:00 — 21:30
Защита проектной работы
31 августа, 10:00 — 11:30

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

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

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

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