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

K-Fold

K-Fold

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

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

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

  • K = 5 или 10 — практичный компромисс смещения, дисперсии и стоимости.
  • Требует K обучений модели.
  • Перемешивание обязательно, если данные отсортированы.

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

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

1

Как устроен K-Fold

K обучений, каждый объект ровно один раз в валидации.

  1. Перемешать данные и разбить на равных частей.
  2. Для каждого : обучить на частях, оценить на оставшейся.
  3. Усреднить оценок.
KДанных на обучениеСтоимостьСвойства оценки
367%низкаясмещена вниз
580%средняяхороший баланс
1090%высокаяменьше смещение, больше разброс
На практике

Repeated K-Fold — несколько повторов с разным перемешиванием — даёт более устойчивую оценку, когда данных мало.

2

Повторная кросс-валидация

Как снизить зависимость оценки от одного разбиения.

from sklearn.model_selection import RepeatedStratifiedKFold
cv = RepeatedStratifiedKFold(n_splits=5, n_repeats=3, random_state=42)
scores = cross_val_score(pipe, X, y, cv=cv, scoring="roc_auc")
print(f"{scores.mean():.4f} +- {scores.std():.4f} по {len(scores)} измерениям")

Три повтора по пять фолдов дают 15 оценок вместо 5 — среднее становится устойчивее, а разброс оценивается честнее. Стоимость — втрое больше обучений, поэтому приём применяют на небольших выборках, где разброс особенно велик.

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

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

Data leakage85%

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

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

Train / Validation / Test split85%

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

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

Data leakage85%

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

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

Cross-validation85%

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

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

Stratified K-Fold85%

Стратифицированный K-Fold · Оценка моделей

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

Leave-One-Out85%

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

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

Bootstrap85%

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

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

Normalization & Standardization85%

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

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