Оценка моделей

Stratified K-Fold

Стратифицированный K-Fold

актуальноТекущий рабочий стандарт

Направления: Машинное обучение · Оценка моделей

с сохранением пропорции классов в каждом фолде.

Ключевые тезисы

  • Обязателен при дисбалансе классов.
  • Убирает фолды, где редкий класс вовсе отсутствует.
  • Для регрессии стратифицируют по бинам целевой переменной.

Подробный разбор

2 подтемы — объяснения, формулы, примеры и интерактивные графики.

Пример

1000 объектов, положительных 20 (2%). При обычном с в фолде в среднем 2 положительных, но с заметной вероятностью может не оказаться ни одного — тогда на этом фолде не определён.

  • Для классификации StratifiedKFold — разумный дефолт всегда, а не только при дисбалансе.
  • Для регрессии стратифицируют по бинам целевой переменной.
  • Если есть и дисбаланс, и группы, используют StratifiedGroupKFold.

from sklearn.model_selection import StratifiedGroupKFold
cv = StratifiedGroupKFold(n_splits=5, shuffle=True, random_state=42)
for tr, va in cv.split(X, y, groups=df.user_id):
    ...
Один пользователь не попадёт одновременно в train и val, а доли классов сохранятся
На практике

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

Связанные темы

Утечки и честная валидация

Data leakage85%

Утечка данных · Данные

Ситуация, когда в обучении присутствует информация, недоступная в момент реального предсказания. Главная причина «слишком хороших» метрик.

Train / Validation / Test split85%

Разбиение выборки · Данные

Train учит, validation настраивает гиперпараметры, test даёт единственную честную оценку — и используется один раз.

Data leakage85%

Утечка данных · Практика ML

Самая дорогая ошибка в ML: модель отлично работает офлайн и разваливается в проде.

Cross-validation85%

Кросс-валидация · Оценка моделей

Многократное разбиение выборки, дающее оценку качества вместе с её разбросом.

K-Fold85%

K-Fold · Оценка моделей

Данные делятся на K частей; каждая по очереди становится валидационной.

Leave-One-Out85%

Leave-One-Out · Оценка моделей

Предельный случай: валидация состоит ровно из одного объекта, и так N раз.

Bootstrap85%

Бутстрэп · Оценка моделей

Многократная выборка с возвращением: даёт распределение метрики и доверительные интервалы без предположений о нормальности.

Normalization & Standardization85%

Нормализация и стандартизация · Данные

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

Проверить себя

Тема встречается в тесте по направлениям — ошибки приведут обратно на эту страницу.

Следующий шагПроверить себя: Классический MLТема встречается в этом тесте 1 раз. Ошибка приведёт обратно на эту страницу — с объяснением, что именно не сошлось.Перейти →

Глава «Оценка моделей» последний раз правилась . Нашли ошибку — напишите.