Содержание:
Модуль 1 – Введение в машинное обучение
- Что такое машинное обучение?
- Для чего используется машинное обучение?
- Какие типы задач можно решать с помощью машинного обучения?
- Основные проблемы машинного обучения
- Почему будем использовать python?
- Обзор основных инструментов и библиотек (Jupyter Notebook, sklearn, NumPy, SciPy, matplotlib, pandas).
Модуль 2 – Основы Python
- типы данных
- ссылки на объекты
- коллекции данных
- логические операции
- инструкции управления потоком выполнения
- арифметические операторы
- ввод / вывод
- создание и вызов функций
Практика
- Работа с объектами в Python, написание функций для работы с данными
Модуль 3 – Математика, необходимая в DS / ML
- функция
- производная, частная производная, градиент функции
- теория вероятности: основные определения
- определение вероятности, вычисление вероятностей сложных событий
- распределение вероятностей, независимые и зависимые переменные
- генеральные совокупности и выборки
- центральная предельная теорема
- меры центральной тенденции, меры разброса
- выбросы
Практика
- реализация указанных математических сущностей на Python
Модуль 4 – Управление данными и их интерпретация
- введение в массивы библиотеки NumPy
- выполнение вычислений над массивами NumPy
- сравнения, макси и булева логика в NumPy
- сортировка массивов NumPy
- введение в библиотеку pandas
- операции над данными в библиотеке pandas
- объединение наборов данных: конкатенация, слияние и соединение
- агрегирование и группировка в pandas
- сводные таблицы в pandas
- векторизованные операции и методы повышения производительности pandas
- визуализация данных с помощью matplotlib
- линейные графики и диаграммы рассеяния в matplotlib
- графики плотности, гистограммы в matplotlib
- настройка легенды на графикам, тексты и поясняющие надписи
- множественные графики
Практика
- векторные вычисление с помощью NumPy, операции над векторами и матрицами, анализ данных с помощью pandas, вычисление основных статистик, фильтрация и отбор данных с помощью pandas, визуализация данных с помощью matplotlib / seaborn
Модуль 5 – Линейные модели
- измерение ошибки в задачах регрессии
- обучение линейной регрессии
- градиентный спуск и модификация градиентного спуска
- интерпретация коэффициентов линейной регрессии
- подготовка данных для линейной модели
- оценка качества моделей
- регуляризация линейной модели и гиперпараметры
Практика
- реализация метрик качества для задачи регрессии, анализ их слабых и сильных сторон, реализация классического решения для модели линейной регрессии, реализация алгоритма градиентного спуска, визуализация траекторий градиентного спуска и стохастического градиентного спуска, сравнение скорости схождения алгоритма градиентного спуска и стохастического градиентного спуска, реализация L1, L2 регуляризации для линейной модели. Опционально: реализация более сложных методов оптимизации для поиска решения линейной регрессии.
Модуль 6 – Логистическая регрессия
- измерение ошибки в задачах бинарной классификации
- оценивание вероятностей
- переобучение, кривые обучения, кривые валидации
- интерпретация коэффициентов логистической регрессии
- границы решения
Практика
- реализация метрик качества для задачи классификации, анализ их слабых и сильных сторон, реализация модели логистической регрессии, построение и анализ кривых обучения и валидационных кривых. Применение модели логистической регрессии для реальных данных, оценка качества модели. Реализация собственных элементов пайплайнов, объединение элементов предобработки данных и обучения модели в единый пайплайн.
Модуль 7 – Решающие деревья
- обучение и визуализация дерева принятия решений
- применение дерева для получения прогнозов
- оценивание вероятностей классов
- оценивание непрерывной величины
- алгоритм обучения CART
- вычислительная сложность деревьев решений
- выбор критериев разбиения
- гиперпараметры, регуляризация, неустойчивость деревьев решений
Практика
- обучение решающих деревьев для задачи классификации и регрессии, сравнение критериев информативностей деревьев решений, сравнение критериев останова деревьев решений, визуализация плоскостей решения при различных значениях гиперпараметров деревьев решений, сравнение способов регуляризации деревьев решений на практике. Сравнение решающих деревьев с линейными моделями, сравнение качества решения и устойчивости решения.
Опционально
- самостоятельная реализация модели решающего дерева для задачи классификации и регрессии.
Модуль 8 – Бэггинг, случайный лес
- разложение ошибки на смещение и дисперсию
- бутстрап, бэггинг, out-of-bag ошибка
- метод случайных подпространств
- случайный лес
- экстремально случайные деревья
- работа с текстовыми данными
- оценка важности признаков
Практика
- самостоятельная реализация модели бэггинга с использованием решающих деревьев и линейных моделей. Векторизация текстовых данных, использования TF-IDF для текстовых данных. Использование лемматизации и стемминга для улучшения качества текстовых данных. Использование модели случайного леса и линейных моделей для работы с текстовыми данными. Использование методов для оценки важности признаков для модели случайного леса.
Опционально
- самостоятельная реализация модели случайного леса для задачи классификации и регрессии.
Модуль 9 – Градиентный бустинг
- бустинг как направленная композиция алгоритмов
- AdaBoost
- XGBoost
- LightGBM
- CatBoost
Практика
- сравнение градиетного бустинга и случайного леса, анализ смещения и дисперсии модели градиетного бустинга, Сравнение реализация алгоритма градиентного бустинга (AdaBoost, XGBoost, LightGBM, CatBoost) на задачах бинарной классификации и регрессии.
Модуль 10 – Важность признаков и методы снижения размерности
- Встроенные методы оценки важности признаков, + / –
- Оценка важности признаков на основе перестановок
- SHAP для оценки важности признаков и интерпретации blackbox-моделей
- Проблема проклятия размерности
- PCA для снижения размерности
- Анализ главных компонент
Практика
- использование встроенных методов оценки важности признаков для линейных моделей, решающих деревьев, случайного леса и градиентного бустинга, анализ их плюсов и минусов. Использование универсальных методов оценки важности, анализ их преимуществ перед встроенными методами оценки важности признаков, отбора признаков. Использование SHAP, PCA для отбора признаков.
Модуль 11 – Обучение без учителя (кластеризация)
Модуль 12 – Основы А-Б тестирования
- распределение вероятностей
- независимые и зависимые переменные
- проверка гипотез
- доверительные интервалы
- p-value, z-статистика
- проверка гипотез с помощью t – критерия
- проверка гипотез для долей
Практика
- моделирование распределения вероятностей с помощью python, проверка одновыборочных гипотез, двухвыбороных гипотез для независимых выборок и двухвыборочных гипотез для зависимых выборок с помощью python.
Модуль 13 – Полный проект машинного обучения (основные этапы + демонстрация)
- работа с реальными данными
- постановка задачи
- получение данных
- обнаружение и визуализация данных для понимания их сущности
- подготовка данных для алгоритмов машинного обучения
- выбор и обучение модели
- настройка гиперпараметров модели
- анализ ошибок / поиск возможностей для улучшения качества модели
- проверка модели на реальных данных
- запуск и сопровождение модели