Выбор ответа Middle Валидация и утечки спрашивают часто обновлено

Утечка через препроцессинг

Вопрос

StandardScaler обучили на всём датасете, потом сделали кросс-валидацию. В чём проблема?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Статистики валидационных фолдов попали в препроцессинг; скейлер нужно обучать внутри фолда. Среднее и дисперсия, посчитанные с участием валидации, это информация из неё.

Варианты ответа

  1. Статистики валидационных фолдов попали в препроцессинг; скейлер нужно обучать внутри фолдаправильный ответ
  2. Проблемы нет: скейлер не обучаемый, он лишь применяет формулу и не может дать утечку
  3. Скейлер нужно было обучить только на тестовой выборке, чтобы масштаб совпадал с продом
  4. Проблема только в скорости: скейлер пересчитывается на каждом фолде, хотя мог один раз

Разбор

Среднее и дисперсия, посчитанные с участием валидации, это информация из неё. Для стандартизации эффект обычно маленький, но для target encoding, отбора признаков, PCA или заполнения пропусков он бывает огромным. Правило: всё, что обучается на данных, обучается только на трейне фолда. В sklearn это Pipeline внутри cross_val_score.

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

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.