Вступить в клуб →
сложнаявопросМетрики, валидация и выбор модели

Масштабирование и target encoding до cross_val_score

Оценка качества сделана так:

X_enc = TargetEncoder().fit_transform(X, y)
X_all = StandardScaler().fit_transform(X_enc)

scores = cross_val_score(model, X_all, y, cv=5, scoring="roc_auc")
print(scores.mean())   # 0.91

На отложенной выборке, собранной за следующий квартал, ROC-AUC оказался 0.80. Что не так с оценкой?

  • cross_val_score сам изолирует фолды, проблема только в смене периода данных
  • Пять фолдов дают слишком шумную оценку, нужно увеличить cv и усреднить
  • Препроцессинг обучен на всех данных, включая валидационные фолды, поэтому оценка завышена
  • Проблема только в target encoding, масштабирование до сплита на оценку не влияет

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела