Данные

Train / Validation / Test split

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

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

Направления: Машинное обучение · Оценка моделей

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

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

  • Стратификация сохраняет баланс классов в каждой части выборки.
  • Группы (пользователи, пациенты, устройства) не должны пересекаться между частями.
  • Для временных данных разбиение только хронологическое, без перемешивания.

Какую задачу решает

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

Третья часть нужна именно потому, что валидация тоже расходуется. Каждый раз, когда вы посмотрели на валидационную метрику и что-то изменили, вы немного подогнали модель под неё. После сотни экспериментов валидационная оценка становится оптимистичной так же, как обучающая, — и честное число может дать только выборка, которую никто не видел.

Как случайное разбиение врёт на временных данных

Прогноз продаж: строки — «магазин, день, продажи». Случайное разбиение положит 1 марта в обучение, 2 марта в тест, 3 марта снова в обучение. Модель, по сути, интерполирует между известными соседними днями — задача, которой в проде не существует, потому что там нужно предсказывать вперёд. на такой валидации окажется вдвое лучше реального. Правильная схема: обучение до 31 декабря, валидация январь — февраль, тест март — то есть ровно та постановка, которая будет в эксплуатации.

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

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

Если подбирать по тесту, оценка перестаёт быть честной: вы подстроились под конкретную выборку. Валидация нужна как «расходный материал» для настройки, тест — как единственная финальная проверка, которую используют один раз.

ЧастьДоля (типично)Для чего
Train60–80%обучение параметров
Validation10–20%, ,
Test10–20%финальная оценка, один раз

  • Дисбаланс классов → StratifiedKFold: доля редкого класса сохраняется в каждой части.
  • Связанные объекты → GroupKFold: все записи одного пользователя, пациента или устройства идут в одну часть.
  • Временные данные → хронологическое разбиение: обучаемся на прошлом, проверяемся на будущем, без перемешивания.
На практике

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

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

Где применяется

  • Любое обучение с учителемБазовая гигиена: без корректного разбиения все метрики бессмысленны.
  • Временные ряды и прогноз по времени вместо случайного разбиения.
  • Медицинские и пользовательские данныеГрупповое разбиение по пациенту или клиенту.
  • Финальная приёмкаТест открывается один раз, перед решением о выводе в прод.

Плюсы, минусы и альтернативы

Плюсы

  • Единственный способ получить честную оценку качества.
  • Делает эксперименты сравнимыми между собой.
  • Правильная схема разбиения ловит целый класс утечек ещё до обучения.

Минусы

  • Отнимает данные у обучения — болезненно на малых выборках.
  • Оценка на одном разбиении шумна: разница в 1% может быть случайностью.
  • Схему легко построить неверно, и ошибка не будет видна в метриках.

Брать, если

  • Всегда, с первого эксперимента.
  • Отдельный тест — когда предстоит много итераций и решений по валидации.

Не брать, если

  • Данных совсем мало — вместо отдельной валидации используйте , а тест всё равно оставьте.
  • Не подглядывайте в тест по ходу работы: после этого он перестаёт быть тестом.

Чем заменяют

Тема также относится к главам:Оценка моделейСхемы валидации

Видеолекции

Тайм-кода именно на эту тему в записях нет. Но глава «Данные» разобрана в курсах целиком — с той оговоркой, что место в записи придётся искать самому.

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

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

Data leakage85%

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

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

Data leakage85%

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

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

Cross-validation85%

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

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

K-Fold85%

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

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

Stratified K-Fold85%

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

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

Leave-One-Out85%

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

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

Bootstrap85%

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

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

Normalization & Standardization85%

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

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

Кому эта тема нужна

Профильная компетенция для ролей: Data Scientist, ML Engineer.

Усиливает профиль: Аналитик данных, Data Engineer.

Следующий шагДальше по связи: Data leakageСитуация, когда в обучении присутствует информация, недоступная в момент реального предсказания. Главная причина «слишком хороших» метрик.Перейти →

Глава «Данные» последний раз правилась . Нашли ошибку — напишите.