Получить доступ

Как работать с несбалансированными классами?

MiddleОсновы машинного обучения
Ещё спрашивают так:
  • Почему accuracy плоха при дисбалансе классов?
  • Что такое oversampling и SMOTE?
Коротко

При 1% мошенничества модель «всё честно» даёт 99% accuracy и бесполезна. Нужны правильные метрики (precision, recall, F1, PR-AUC), подбор порога под цену ошибок, веса классов в функции потерь, а пересэмплирование (undersampling, oversampling, SMOTE) — с осторожностью.

  • Порог 0,5 почти никогда не оптимален при дисбалансе
  • class_weight="balanced" — простой первый шаг
  • Пересэмплирование — только внутри обучающей части, не до разбиения

А ещё Вероятности после пересэмплирования искажены — их калибруют

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

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

Порог классификатора: матрица ошибок, ROC и PR

Подробно

Метрики. Accuracy доминирует большой класс. Смотрят на:

  • recall — какую долю мошенников нашли;
  • precision — какая доля тревог настоящая;
  • PR-AUC — площадь под кривой precision-recall, информативнее ROC-AUC при сильном дисбалансе.

Порог. Модель выдаёт вероятность; решение принимается порогом. Порог выбирают по цене ошибок: пропуск мошенничества дороже ложной тревоги — порог ниже.

Методы:

  • веса классов — ошибка на редком классе стоит дороже в функции потерь; работает почти во всех моделях;
  • undersampling — выбросить часть большого класса: быстро, но теряем данные;
  • oversampling / SMOTE — дублировать или синтезировать примеры редкого класса: риск переобучения на синтетике;
  • ансамбли на сбалансированных подвыборках.

Типичная ошибка — пересэмплировать до разбиения на обучение и тест: копии одного объекта попадают в обе части, метрика завышена. Тест должен сохранять реальную долю классов.

Что хотят услышать

  • Почему accuracy вводит в заблуждение.
  • Метрики и подбор порога.
  • Веса классов и пересэмплирование с оговорками.

Связанные вопросы

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем