Получить доступ

Что такое кросс-валидация и как правильно валидировать модель на временных данных?

MiddleОсновы машинного обученияscikit-learn
Ещё спрашивают так:
  • Чем k-fold отличается от hold-out?
Коротко

K-fold: данные делят на k частей, модель обучают k раз, каждый раз оставляя одну часть для проверки, и усредняют метрику — оценка надёжнее одного разбиения. Для временных данных перемешивать нельзя: обучаются на прошлом, проверяются на будущем (скользящее окно или расширяющееся окно).

  • Stratified k-fold сохраняет долю классов в каждой части — важно при дисбалансе
  • Group k-fold — объекты одного пользователя не попадают и в обучение, и в проверку
  • Тестовая выборка всё равно откладывается отдельно и используется один раз

А ещё Перемешивание временного ряда — классическая утечка «из будущего»

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

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

Виды:

  • k-fold (обычно k = 5 или 10);
  • stratified — для классификации, особенно при редком классе;
  • group — когда у одного объекта несколько строк (сессии пользователя, снимки одного пациента), иначе модель «узнаёт» объект;
  • time series split — каждое следующее окно проверки позже обучающих данных.

Временные данные:

обучение: [янв-март]        проверка: [апр]
обучение: [янв-апр]         проверка: [май]
обучение: [янв-май]         проверка: [июнь]

Иногда между обучением и проверкой делают зазор (gap), если целевая переменная становится известна с задержкой.

Где ещё ошибаются: нормализацию и отбор признаков делают на всех данных до разбиения — это утечка; правильно — внутри каждого фолда (Pipeline в sklearn).

Что хотят услышать

  • Механика k-fold и зачем она нужна.
  • Stratified и group варианты.
  • Валидация на временных данных.
  • Предобработка внутри фолдов.

Связанные вопросы

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем