Основы машинного обучения
1. Типы задач ML
Supervised Learning (Обучение с учителем)
- Что: Модель обучается на размеченных данных
- Как: Есть правильные ответы (labels) для обучения
- Примеры:
- Классификация: спам/не спам, кошка/собака
- Регрессия: предсказание цены, температуры
Unsupervised Learning (Обучение без учителя)
- Что: Модель ищет структуру в данных без правильных ответов
- Как: Нет labels, только данные
- Примеры:
- Кластеризация: группировка клиентов
- Снижение размерности: PCA, t-SNE
- Поиск аномалий
Reinforcement Learning (Обучение с подкреплением)
- Что: Агент учится, взаимодействуя со средой
- Как: Получает "награды" за правильные действия
- Примеры:
- Игровые AI (AlphaGo)
- Робототехника
- Рекомендательные системы
2. Признаки и целевая переменная
Признаки (Features)
- Что: Характеристики объектов, которые модель использует для предсказания
- Пример для квартиры: площадь, район, этаж, год постройки
- Типы:
- Числовые: площадь = 54.5 м²
- Категориальные: район = "Центральный"
- Бинарные: лифт = да/нет
Целевая переменная (Target)
- Что: То, что мы хотим предсказать
- Пример: Цена квартиры
- Обозначение: $y$ в формулах
Матрица признаков (Features Matrix)
- Обозначение: $X$ (размер: n_samples × n_features)
- Пример:
| площадь | район_центр | этаж | ... | → признаки |---------|-------------|------|-----| | 54.5 | 1 | 5 | ... | → объект 1 | 72.3 | 0 | 2 | ... | → объект 2
3. Что такое переобучение и как его обнаружить?
Переобучение (Overfitting)
Что: Модель слишком хорошо "выучила" обучающие данные, но плохо работает на новых
Аналогия: Студент зазубрил билеты, но не понял тему → провалит новый вопрос
Как обнаружить:
-
Разделить данные на три части:
- Train (обучение): 60-70%
- Validation (валидация): 15-20%
- Test (тест): 15-20% -
Сравнить метрики:
Качество модели: - На train: 98% (отлично!) - На validation: 65% (плохо!) - На test: 63% (очень плохо!)
Разрыв > 5-10% → переобучение -
Learning Curves (кривые обучения):
- Ошибка на train снижается, но на validation растёт или не улучшается
- Большой разрыв между кривыми
4. Как бороться с переобучением?
1. Больше данных
- Собрать больше примеров
- Аугментация (для изображений, текста)
2. Упростить модель
- Уменьшить глубину дерева
- Уменьшить число слоёв в нейросети
- Использовать регуляризацию
3. Регуляризация
- L1/L2 регуляризация — штраф за большие веса
- Dropout (в нейросетях) — случайное "выключение" нейронов
- Early stopping — остановка до переобучения
4. Feature Engineering
- Удалить неважные признаки
- Создать более осмысленные признаки
5. Ансамбли
- Объединить несколько простых моделей
- Bagging (Random Forest), Boosting
5. Параметры и гиперпараметры
Параметры модели
- Что: Настраиваются автоматически во время обучения
- Примеры:
- Веса в линейной регрессии: $w_0, w_1, ..., w_m$
- Разделения в дереве решений
- Веса в нейронной сети
- Как настраиваются: Градиентный спуск, обратное распространение
Гиперпараметры модели
- Что: Настраиваются вручную ДО обучения
- Примеры:
- Скорость обучения (learning rate)
- Глубина дерева
- Число нейронов в слое
- Как настраиваются: Grid search, random search, ручной подбор
Простая аналогия:
- Параметры — как мышцы тела (тренируются)
- Гиперпараметры — как программа тренировок (выбирается тренером)
6. Примеры гиперпараметров разных моделей
Линейная регрессия / Логистическая регрессия
- Сила регуляризации ($λ$ или C)
- Тип регуляризации (L1, L2, Elastic Net)
- Доля L1 в Elastic Net ($α$)
Дерево решений
- Максимальная глубина (max_depth)
- Минимальное число samples в листе (min_samples_leaf)
- Критерий разделения (gini/entropy)
Random Forest / Gradient Boosting
- Число деревьев (n_estimators)
- Максимальная глубина каждого дерева
- Доля признаков для каждого дерева (max_features)
- Скорость обучения (learning rate) для бустинга
Нейронные сети
- Число слоёв
- Число нейронов в каждом слое
- Скорость обучения (learning rate)
- Размер батча (batch size)
- Dropout rate
- Оптимизатор (Adam, SGD, RMSprop)
K-Means (кластеризация)
- Число кластеров (k)
- Инициализация центроидов
- Максимальное число итераций
7. Что такое кросс-валидация и зачем она нужна?
K-Fold Cross-Validation
Что: Разбиваем данные на K частей (folds), K раз обучаем на K-1 частях, тестируем на оставшейся
Как работает (пример 5-Fold):
Данные: [1][2][3][4][5] (5 частей)
Итерация 1: Train на [2][3][4][5], Test на [1]
Итерация 2: Train на [1][3][4][5], Test на [2]
Итерация 3: Train на [1][2][4][5], Test на [3]
Итерация 4: Train на [1][2][3][5], Test на [4]
Итерация 5: Train на [1][2][3][4], Test на [5]
Итог: 5 оценок качества → усредняем
Зачем нужна:
- Более надёжная оценка — используем все данные для тестирования
- Меньше зависимости от конкретного разбиения
- Лучше используем данные — особенно важно при малом объёме данных
Типы кросс-валидации:
- K-Fold — стандартная (K=5 или 10)
- Stratified K-Fold — сохраняет распределение классов
- Leave-One-Out (LOO) — каждый объект как отдельный test
- Time Series Split — для временных рядов (не перемешивать!)
8. Как подбирать гиперпараметры
1. Grid Search (Поиск по сетке)
Что: Перебираем ВСЕ комбинации из заранее заданных значений
Пример для SVM:
param_grid = {
'C': [0.1, 1, 10, 100], # 4 значения
'kernel': ['linear', 'rbf'], # 2 значения
'gamma': [0.001, 0.01, 0.1, 1] # 4 значения
}
# Всего комбинаций: 4 × 2 × 4 = 32
Плюсы:
- Находит глобальный оптимум (если он в сетке)
- Простой в реализации
- Детерминированный результат
Минусы:
- Медленно при многих параметрах
- Тратит время на плохие комбинации
2. Random Search (Случайный поиск)
Что: Случайно выбираем комбинации из заданных распределений
Пример:
param_dist = {
'C': loguniform(0.001, 100), # случайно из диапазона
'max_depth': randint(3, 20), # случайное целое
'learning_rate': uniform(0.01, 0.3) # случайное дробное
}
Плюсы:
- Быстрее Grid Search
- Часто находит лучшее решение
- Можно задавать распределения, а не фиксированные значения
Минусы:
- Может пропустить хорошие комбинации
- Не гарантирует воспроизводимость
3. Bayesian Optimization (Байесовская оптимизация)
Что: Использует предыдущие результаты, чтобы выбирать следующие точки
Как работает:
1. Пробуем несколько случайных комбинаций
2. Строим вероятностную модель (часто Gaussian Process)
3. Выбираем следующую точку, которая, вероятно, даст улучшение
4. Повторяем
Плюсы:
- Самый эффективный по числу итераций
- Учитывает информацию о предыдущих пробах
- Хорошо для дорогих моделей (нейросети)
Минусы:
- Сложнее в реализации
- Зависит от начальных точек
4. Automated ML (AutoML)
Что: Автоматический подбор не только гиперпараметров, но и:
- Моделей
- Признаков
- Предобработки
Библиотеки: Auto-sklearn, TPOT, H2O AutoML
Практические рекомендации:
Когда что использовать:
- Мало гиперпараметров (<5) → Grid Search
- Много гиперпараметров → Random Search или Bayesian
- Очень долгое обучение → Bayesian Optimization
- Быстрый прототип → дефолтные значения + ручная настройка
Процесс подбора:
1. Выбрать метрику (accuracy, F1, RMSE)
2. Выбрать стратегию валидации (чаще всего K-Fold)
3. Определить пространство поиска
4. Запустить поиск
5. Проверить лучшую модель на тестовой выборке
Важные моменты:
- Никогда не используйте тестовую выборку для подбора!
- При кросс-валидации разделяйте на train/test ДО CV
- Используйте отдельную валидационную выборку для финальной оценки
- Записывайте результаты экспериментов
Оставить отзыв
Комментарии
Загрузка комментариев...
★ Оставить отзыв