Выбор ответа Middle Несбалансированные классы обновлено

SMOTE до кросс-валидации

Вопрос

Аналитик сделал SMOTE на всём датасете и затем кросс-валидацию. Recall вырос с 0.4 до 0.9. В чём подвох?

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

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

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

Коротко

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

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

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

Разбор

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

  • Такой рост метрики почти всегда артефакт.
  • Модель не менялась.
  • Размер валидации не уменьшился, она изменилась по составу.

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

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

Термины по теме