Что такое кросс-валидация и как правильно валидировать модель на временных данных?
- Чем 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 минут бесплатно.