Многократное разбиение выборки, дающее оценку качества вместе с её разбросом.
Ключевые тезисы
- Использует все данные и для обучения, и для оценки.
- Весь препроцессинг должен быть внутри фолда, иначе будет утечка.
- Разброс по фолдам важнее среднего: он показывает устойчивость модели.
Подробный разбор
2 подтем — раскройте любую, чтобы увидеть объяснение, формулы, примеры и интерактивные графики.
1Зачем нужна кросс-валидация
Одна валидационная выборка — это одно случайное число.
Оценка на одной отложенной выборке сильно зависит от того, какие объекты в неё попали. Кросс-валидация усредняет несколько таких оценок и заодно показывает их разброс.
- номер или количество: индекс шага, число соседей, кластеров или позиций
- суммирование по всем перечисленным элементам
Разброс важнее среднего. Модель с CV надёжнее, чем : вторая может в проде показать и 0.78.
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%
Расписание скорости обучения · Оптимизация обученияИзменение шага по ходу обучения: большой в начале для исследования, малый в конце для точной настройки.