Вопрос с собеседования · AI и LLM

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

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

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

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

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

Подробно

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

Виды:

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

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

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

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

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

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

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

Проверьте себя

Один верный вариант. Подумайте, потом откройте ответ.

Показать варианты и ответ
  • ✗Для временных данных обычный k-fold с перемешиванием — лучший выбор
  • ✗Для временных данных — обычный k-fold с перемешиванием: так в каждую часть попадают все периоды и оценка получается устойчивее
  • ✓K раз обучать, оставляя часть на проверку; для времени — прошлое против будущего
  • ✗Кросс-валидация обучает k моделей и складывает их в ансамбль для продакшена

Разбор темы

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

Партнёр платформы

Разбор собеседования с sotto

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

Разбор собеседования