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):
...Идеально совместить оба требования удаётся не всегда: если у одного пользователя все объекты одного класса, стратификация будет приблизительной.
Связанные темы
Утечки и честная валидация
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%
Нормализация и стандартизация · ДанныеПриведение признаков к сопоставимым масштабам, без которого расстояния, градиенты и регуляризация работают некорректно.