Основы машинного обучения
Классическое машинное обучение на Python — от numpy и pandas до моделей, которые вы обучите, оцените, настроите и сможете объяснить.
Задачу проверяют тесты: в браузере и в облаке
Задачи курса запускаются в браузере, поэтому для прохождения ничего устанавливать не нужно. Чтобы запускать код уроков и задачи на своём компьютере, подготовьте его за четыре шага.
Установите Python 3.12
Нужна именно версия 3.12: под неё есть готовые сборки тех версий библиотек, на которых работает сайт. Скачайте установщик для своей системы с python.org.
Установите VS Code
Скачайте VS Code и поставьте расширение Python от Microsoft.
Создайте окружение и поставьте библиотеки
Откройте в VS Code папку для курса и создайте в ней виртуальное окружение. Поставьте те же версии, что на сайте, — тогда вывод совпадёт с уроками: numpy 1.26, pandas 2.2, scikit-learn 1.4 и pytest.
Запускайте код уроков и задачи
Код урока сохраните в файл и запустите кнопкой ▶. Для задачи сохраните обе вкладки редактора под их именами и запустите тесты на панели Testing.
Программа курса
- Массивы NumPyТеория
- Тест — список и массив, умноженные на 2Тест
- Индексы и срезыТеория
- Тест — суммы по булевой маскеТест
- Оси и транслированиеТеория
- Тест — формы при axis и транслированииТест
- Задача: значения выше среднего столбцаЗадача
- Таблица DataFrame в pandasТеория
- Тест — подсчёт пропусковТест
- Группировка и медианаТеория
- Тест — медиана по группамТест
- Задача: медиана по группамЗадача
- Обучающая и тестовая выборкиТеория
- Тест — строки после разбиенияТест
- Пропущенные значенияТеория
- Тест — чем заполнится пропускТест
- Кодирование категорийТеория
- Тест — one-hot или номераТест
- Масштабирование признаковТеория
- Тест — масштаб тестового значенияТест
- Задача: стандартизировать тестовую выборкуЗадача
- Утечка данныхТеория
- Тест — где утекает тестовая выборкаТест
- Задача: подготовить признакиЗадача
- Прямая через точкиТеория
- Тест — наклон и свободный членТест
- Задача: подобрать прямуюЗадача
- Линейная регрессия в scikit-learnТеория
- Тест — форма XТест
- Тест — как читать коэффициентТест
- Метрики регрессииТеория
- Тест — MAE и RMSEТест
- Тест — отрицательный R²Тест
- Задача: R² на данных о диабетеЗадача
- Градиентный спускТеория
- Тест — один шаг спускаТест
- Задача: один шаг градиентного спускаЗадача
- График остатковТеория
- Тест — как читать остаткиТест
- Полиномиальные признакиТеория
- Тест — почему кривая остаётся линейнойТест
- Тест — сколько столбцовТест
- Задача: полиномиальные признакиЗадача
- Степень и переобучениеТеория
- Тест — степень и ошибкиТест
- Ridge и LassoТеория
- Тест — нули у Ridge и LassoТест
- Тест — alpha и наклонТест
- Задача: Ridge на данных о диабетеЗадача
- Регрессия опорных векторовТеория
- Тест — ε-трубкаТест
- СигмоидаТеория
- Тест — сигмоида от счётаТест
- Логарифмическая функция потерьТеория
- Задача: сигмоида и log-lossЗадача
- Логистическая регрессия в scikit-learnТеория
- Тест — predict_proba и predictТест
- Матрица ошибокТеория
- Тест — клетки матрицы ошибокТест
- Точность и полнотаТеория
- Тест — точность и полнотаТест
- Тест — сдвиг порогаТест
- ROC-AUCТеория
- Задача: полнота и ROC-AUC на данных об опухоляхЗадача
- Ближайшие соседиТеория
- Тест — голосование соседейТест
- Задача: предсказание по k соседямЗадача
- k-NN в scikit-learnТеория
- Тест — масштаб и соседиТест
- Выбор kТеория
- Тест — малое и большое kТест
- Задача: k-NN на данных о винахЗадача
- Теорема БайесаТеория
- Тест — вероятность спамаТест
- Наивный БайесТеория
- Тест — в чём наивностьТест
- Разбиение и неоднородность GiniТеория
- Тест — Gini группыТест
- Задача: Gini разбиенияЗадача
- Деревья решений в scikit-learnТеория
- Тест — глубина и обучающая выборкаТест
- Пороги и константы в листьяхТеория
- Тест — дерево за пределами данныхТест
- Бэггинг и случайный лесТеория
- Тест — что такое бэггингТест
- Важность признаковТеория
- Тест — важность номера строкиТест
- Задача: лес и главный признакЗадача
- Смещение и разбросТеория
- Тест — смещение и разбросТест
- Обучающая, валидационная и тестовая выборкиТеория
- Тест — роли трёх выборокТест
- Кросс-валидацияТеория
- Тест — что возвращает cross_val_scoreТест
- Задача: индексы k-foldЗадача
- КонвейерыТеория
- Тест — имя параметра шагаТест
- Поиск по сеткеТеория
- Тест — число обучений в поиске по сеткеТест
- Задача: подобрать C поиском по сеткеЗадача
- Бустинг на остаткахТеория
- Тест — один шаг на остаткахТест
- Задача: один шаг бустингаЗадача
- Градиентный бустинг в scikit-learnТеория
- Тест — бустинг и пропускиТест
- Задача: бустинг на учебном набореЗадача
- Скорость обучения и число деревьевТеория
- Тест — скорость обучения и деревьяТест
- Ранняя остановкаТеория
- Тест — ранняя остановка по умолчаниюТест
- XGBoost, LightGBM и CatBoostТеория
- Тест — как LightGBM растит деревоТест
- Алгоритм k-meansТеория
- Тест — один шаг k-meansТест
- Задача: один шаг k-meansЗадача
- k-means в scikit-learnТеория
- Тест — значение inertia_Тест
- Тест — что исправляет k-means++Тест
- Выбор числа кластеровТеория
- Тест — локоть и силуэтТест
- Задача: лучшее k по силуэтуЗадача
- Иерархическая кластеризацияТеория
- Тест — predict для новой точкиТест
- Главные компонентыТеория
- Тест — доля дисперсииТест
- PCA в scikit-learnТеория
- Тест — формы результатов PCAТест
- Тест — что делает PCA и зачем масштабТест
- Задача: проекция на главные компонентыЗадача
- PCA в конвейереТеория
- Задача: PCA перед классификаторомЗадача
- Линейный дискриминантный анализТеория
- Тест — компоненты LDAТест
- Kernel PCAТеория
- Тест — kernel PCAТест
- A/B-тестТеория
- Тест — как читать p-valueТест
- Бандиты и regretТеория
- Тест — regret последовательностиТест
- Стратегия ε-greedyТеория
- Тест — пошаговое среднее ручкиТест
- Задача: прогон ε-greedyЗадача
- UCB и Thompson samplingТеория
- Тест — оценка UCB и простое среднееТест
- Задача: выбор ручки в UCBЗадача
- Бандит или A/B-тестТеория
- Тест — бандит или A/B-тестТест
- Очистка и разбиение текстаТеория
- Тест — подсчёт токеновТест
- Мешок словТеория
- Тест — слово вне словаряТест
- Задача: мешок слов вручнуюЗадача
- TF-IDFТеория
- Тест — IDF частого и редкого словаТест
- Наивный Байес для текстаТеория
- Тест — зачем нужен alphaТест
- Задача: спам-фильтрЗадача
- Слова как векторыТеория
- Тест — косинус или расстояниеТест
- Нейроны и слоиТеория
- Тест — слой с ReLUТест
- Обратное распространение ошибкиТеория
- Тест — градиент выходного слояТест
- Задача: маленькая нейросетьЗадача
- MLPClassifier в scikit-learnТеория
- Тест — число параметров сетиТест
- Задача: нейросеть на данных о цифрахЗадача
- Переобучение и ранняя остановкаТеория
- Тест — ранняя остановкаТест
- Свёртка и пулингТеория
- Тест — почему у CNN меньше параметровТест
- Сохранение моделиТеория
- Тест — сохранён только шаг моделиТест
- Пакетный и онлайн-режимТеория
- Тест — масштабирование по одной строкеТест
- Дрейф данныхТеория
- Тест — сдвиг среднего в отклоненияхТест
- Задача: проверка дрейфаЗадача
- Перестановочная важностьТеория
- Тест — что показывает перестановочная важностьТест
- Задача: главный признак по перестановкамЗадача
- Смещение через посредниковТеория
- Тест — удаление чувствительного столбцаТест