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

Cross-validation

Кросс-валидация

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

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

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

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

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

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

1

Зачем нужна кросс-валидация

Одна валидационная выборка — это одно случайное число.

Оценка на одной отложенной выборке сильно зависит от того, какие объекты в неё попали. Кросс-валидация усредняет несколько таких оценок и заодно показывает их разброс.

Обозначения
  • номер или количество: индекс шага, число соседей, кластеров или позиций
  • суммирование по всем перечисленным элементам
На практике

Разброс важнее среднего. Модель с CV надёжнее, чем : вторая может в проде показать и 0.78.

фолд 1
фолд 2
фолд 3
фолд 4
фолд 5
обучение валидация
обучений модели5
доля валидации20%
схемаK-Fold
Схема разбиения
Меняйте K: чем больше фолдов, тем больше обучений и тем больше данных в каждом обучении
2

Весь препроцессинг — внутри фолда

Самая частая ошибка в кросс-валидации.

# Неправильно: скейлер видит валидационные объекты
X = StandardScaler().fit_transform(X)
cross_val_score(model, X, y, cv=5)

# Правильно: всё внутри пайплайна
pipe = Pipeline([("sc", StandardScaler()), ("clf", model)])
cross_val_score(pipe, X, y, cv=5)

То же касается отбора признаков, target encoding, борьбы с дисбалансом (SMOTE) и заполнения пропусков. Если хоть один из этих шагов увидит валидационные объекты, оценка станет завышенной.

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

Ансамблирование · Утечки и честная валидация · Подбор гиперпараметров

Stacking and Blending85%

Стекинг и блендинг · Классическое машинное обучение

Ансамбль из разнородных моделей, поверх которых обучается мета-модель. Стандартный приём соревнований и способ выжать последние проценты.

Random Forest85%

Случайный лес · Классическое машинное обучение

Бэггинг деревьев со случайными подвыборками объектов и признаков: усреднение резко снижает дисперсию.

Gradient Boosting85%

Градиентный бустинг · Классическое машинное обучение

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

Variance85%

Дисперсия · Математический справочник

Мера разброса значений вокруг среднего.

Data leakage85%

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

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

Train / Validation / Test split85%

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

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

Data leakage85%

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

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

K-Fold85%

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

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

Stratified K-Fold85%

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

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

Leave-One-Out85%

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

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

Bootstrap85%

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

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

Normalization & Standardization85%

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

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

Hyperparameter tuning80%

Настройка гиперпараметров · Практика ML

Поиск конфигурации модели по валидационной метрике — последний, а не первый шаг работы.

Grid Search80%

Поиск по сетке · Практика ML

Полный перебор всех комбинаций заданных значений гиперпараметров.

Random Search80%

Случайный поиск · Практика ML

Случайная выборка конфигураций из заданных распределений.

Bayesian Optimization80%

Байесовская оптимизация · Практика ML

Строит модель зависимости метрики от гиперпараметров и выбирает следующую точку осознанно.

Learning Rate Scheduling80%

Расписание скорости обучения · Оптимизация обучения

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