Дисбаланс классов

Дисбаланс классов — ситуация, когда интересующий вас исход в данных редок: мошеннические транзакции, уходящие аккаунты, бракованные детали, инциденты безопасности. Это скорее норма, чем исключение, и она ломает предпосылки и обучения, и оценки. При обучении функция потерь, взвешивающая все примеры одинаково, оказывается во власти мажоритарного класса, так что дешевле всего снизить ошибку, почти всегда предсказывая большинство. При оценке аккуратность по той же причине перестаёт нести информацию. Обычные ответы делятся на три группы. Менять данные: проредить большинство, продублировать меньшинство или сгенерировать синтетические примеры редкого класса — всегда после разбиения, никогда до, иначе один и тот же пример окажется и в обучении, и в тесте. Менять целевую функцию: дать редкому классу больший вес в потерях; это обходится без дублирования строк и обычно проще как отправная точка. Или менять решение: сохранить оценки модели и выбрать рабочий порог, отражающий реальную цену пропуска против ложной тревоги, — часто это единственное действительно нужное изменение. Две оговорки. Ресемплинг искажает предсказанные вероятности, и модель, обученная на выровненном наборе, будет завышать долю редкого класса, пока её не откалибруют. А при редком классе в тесте мало положительных примеров, так что и сама метрика шумная: разница в несколько процентных пунктов может означать смену стороны у горстки строк.

Похожие термины

Ещё термины: MLOps-процессы