Выбор ответа Middle Валидация и утечки спрашивают часто обновлено
Утечка через препроцессинг
Вопрос
StandardScaler обучили на всём датасете, потом сделали кросс-валидацию. В чём проблема?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Статистики валидационных фолдов попали в препроцессинг; скейлер нужно обучать внутри фолда. Среднее и дисперсия, посчитанные с участием валидации, это информация из неё.
Варианты ответа
- Статистики валидационных фолдов попали в препроцессинг; скейлер нужно обучать внутри фолдаправильный ответ
- Проблемы нет: скейлер не обучаемый, он лишь применяет формулу и не может дать утечку
- Скейлер нужно было обучить только на тестовой выборке, чтобы масштаб совпадал с продом
- Проблема только в скорости: скейлер пересчитывается на каждом фолде, хотя мог один раз
Разбор
Среднее и дисперсия, посчитанные с участием валидации, это информация из неё. Для стандартизации эффект обычно маленький, но для target encoding, отбора признаков, PCA или заполнения пропусков он бывает огромным. Правило: всё, что обучается на данных, обучается только на трейне фолда. В sklearn это Pipeline внутри cross_val_score.
- Скейлер обучаемый: fit считает статистики.
- На тесте ничего не обучают.
- Дело не в скорости (он как раз не пересчитывался на фолдах), а в честности оценки.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.