Машинное обучение
Для тех, кто уже пишет на Python и хочет не звать библиотеки наугад, а понимать, что модель делает с данными и почему её оценка бывает враньём.
Программа
- 01
Данные и pandas
Восемь из десяти часов в ML уходит не на модели, а на данные: собрать, понять форму, починить типы и пропуски. Этот модуль — про то, как перестать бояться таблицы и начать видеть в ней X и y.
- 1.1 · Что такое обучение с учителем
- 1.2 · Объекты, признаки, целевая переменная
- 1.3 · DataFrame и Series изнутри
- 1.4 · Отбор, фильтрация, groupby
- 1.5 · Типы данных и пропуски
- 02
Разведочный анализ
EDA — это не рисование графиков ради красоты. Это допрос данных до того, как вы обучил хоть одну модель: откуда они взялись, что означает строка, чему тут вообще можно верить.
- 2.1 · Зачем нужен разведочный анализ
- 2.2 · Распределения: среднее, медиана, хвосты
- 2.3 · Выбросы: понять, а не удалить
- 2.4 · Связи между признаками
- 2.5 · Целевая переменная и дисбаланс
- 03
Подготовка признаков
Между сырой таблицей и моделью лежит подготовка данных — место, где чаще всего теряют качество и где чаще всего незаметно протекает информация о тесте в обучение. Разбираемся, как разбивать выборку, масштабировать, кодировать категории, закрывать пропуски и собирать всё это в один Pipeline, который нельзя применить неправильно.
- 3.1 · Разбиение выборки и утечка данных
- 3.2 · Масштабирование признаков
- 3.3 · Кодирование категорий
- 3.4 · Стратегии заполнения пропусков
- 3.5 · Новые признаки и Pipeline
- 04
Линейные модели
Самая понятная модель и лучшая базовая линия: у неё видно каждый вес и каждое решение. Если обыграть линейную модель не получается, проблема почти всегда не в алгоритме, а в данных.
- 4.1 · Линейная регрессия: что она подбирает
- 4.2 · Функция потерь и градиентный спуск
- 4.3 · Логистическая регрессия и вероятности
- 4.4 · Регуляризация и переобучение
- 4.5 · Где линейная модель ломается
- 05
Деревья и ансамбли
На картинках и текстах правят нейросети, но на обычных таблицах — там, где строка это клиент, заказ или день — почти всегда выигрывают ансамбли деревьев. Причина не в моде: дерево умеет ступеньки и взаимодействия признаков, не требует масштабирования, спокойно живёт с разномасштабными и категориальными по смыслу колонками, а ансамбль превращает его главный недостаток (дикую нестабильность) в достоинство. В этом модуле разбираем, как дерево режет пространство, почему оно переобучается, чем бэггинг отличается от бустинга по природе ошибки и почему важности признаков врут чаще, чем кажется.
- 5.1 · Решающее дерево: как оно делит пространство
- 5.2 · Переобучение дерева и как его держать
- 5.3 · Случайный лес и бэггинг
- 5.4 · Градиентный бустинг
- 5.5 · Важность признаков: чему верить
- 06
Метрики и валидация
Честная оценка важнее модели. Почти все провалы ML в проде — это провалы измерения: считали не то число, считали не на тех данных или подглядывали в тест. Модуль про то, как получить цифру, которой можно верить.
- 6.1 · Почему одна метрика врёт
- 6.2 · Precision, recall, F1, ROC-AUC
- 6.3 · MAE, RMSE, R² и их характер
- 6.4 · Кросс-валидация
- 6.5 · Валидация против теста
- 07
Нейросети: основы
Нейросеть — это не магия и не искусственный мозг. Это стопка линейных моделей, между которыми вставлена нелинейность, а веса подобраны градиентным спуском. Разбираем устройство нейрона, зачем нужна глубина, как работает обратное распространение (это просто цепное правило), из чего состоит цикл обучения — и когда всю эту конструкцию честнее заменить бустингом.
- 7.1 · Нейрон: линейная модель с нелинейностью
- 7.2 · Многослойный перцептрон и что даёт глубина
- 7.3 · Обратное распространение ошибки
- 7.4 · Обучение: батчи, эпохи, learning rate
- 7.5 · Когда нейросеть, а когда бустинг
- 08
Модель в продакшн
Модель, которая живёт только в ноутбуке, никому не приносит пользы. Учимся сохранять пайплайн целиком, поднимать инференс без расхождений с обучением, заворачивать всё в маленькое API и замечать, что модель тихо стареет.
- 8.1 · Сохранение модели и версии окружения
- 8.2 · Инференс: тот же препроцессинг, что и на обучении
- 8.3 · Простое API вокруг модели
- 8.4 · Дрейф данных и мониторинг
Проект в конце
Модель, которая заранее показывает, кто из клиентов вот-вот уйдёт, и объясняет почему