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

Stratified K-Fold

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

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

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

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

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

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

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

1

Зачем сохранять доли классов

Без стратификации редкий класс может исчезнуть из фолда.

Пример

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

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

Группы и стратификация вместе

Когда у объектов есть и класс, и владелец.

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%

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

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