Выбор ответа Middle Несбалансированные классы обновлено
SMOTE до кросс-валидации
Вопрос
Аналитик сделал SMOTE на всём датасете и затем кросс-валидацию. Recall вырос с 0.4 до 0.9. В чём подвох?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Синтетика из объектов валидации попала в трейн: модель видит почти копии валидационных точек. Синтетический объект лежит между двумя реальными.
Варианты ответа
- Подвоха нет: SMOTE так и работает, он добавляет редкому классу информации, и recall растёт честно
- Recall вырос, потому что после SMOTE модель стала сложнее и лучше выучила границу редкого класса
- Синтетика из объектов валидации попала в трейн: модель видит почти копии валидационных точекправильный ответ
- SMOTE уменьшил число объектов в валидационных фолдах, и оценка recall стала нестабильной и завышенной
Разбор
Синтетический объект лежит между двумя реальными. Если один из них в валидационном фолде, а синтетика в трейне, это утечка. Плюс валидация теперь со сбалансированными классами, не как в проде. Правильно: imblearn.Pipeline, где семплирование выполняется только на трейне фолда.
- Такой рост метрики почти всегда артефакт.
- Модель не менялась.
- Размер валидации не уменьшился, она изменилась по составу.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.