Imbalanced classification: метрики, loss и leakage
Как обучать и оценивать модель, если положительный класс редкий?
Ответить самому
Сначала сформулируйте ответ как на собеседовании, затем откройте разбор и оцените себя.
Короткий ответ
Смотреть PR-AUC, precision/recall по порогу и бизнес-cost ошибок; использовать class weights, sampling, focal loss и строго проверять leakage/time split.
Полный разбор
При сильном imbalance accuracy почти бесполезна: модель может всегда предсказывать majority class. Обычно смотрят PR-AUC, recall@precision, precision@recall, confusion matrix по выбранному порогу, calibration и бизнес-стоимость false positive/false negative.
Обучение можно стабилизировать class weights, over/under-sampling, hard negative mining, focal loss, balanced batches и аугментациями. Но sampling меняет распределение, поэтому probabilities после обучения могут требовать calibration.
Отдельная опасность - leakage. В product ML часто есть признаки из будущего: события после target time, агрегаты, построенные на всей истории, или дубликаты пользователей между train/test. Для временных задач нужен time split и point-in-time feature join.
Теория
В редком классе важна не общая точность, а качество на нужном operating point.
Типичные ошибки
- Отчитываться accuracy при доле positives меньше нескольких процентов.
- Случайно включать будущие события в признаки.
- Выбирать threshold без бизнес-cost и calibration.