МОДУЛЬ 11 · Middle-track · 2 час

93% алертов ложные — и экономика всё равно сходится

Один мошенник на тысячу честных, 500 проверок в день и разная цена двух ошибок. Порог здесь — не 0,5, а результат расчёта в рублях.

Пройти модуль в симуляторе Все 23 урока

Первые два модуля бесплатны, без карты. Остальные — по подписке $20/мес.

🏢 Ситуация

Вас переводят в антифрод-подпроект. Игорь вводит в курс:

«Кошелёк Datacore процессит 400 000 транзакций в день. Фрод — 0.1%, но каждый пропущенный кейс — в среднем −18 000 ₽, а каждая ложная блокировка честного клиента — звонок в поддержку (−400 ₽) и злой клиент. Команда ручной проверки разбирает максимум 500 алертов в день. Твоя модель должна жить в этих ограничениях. Дисбаланс 1:1000 — здесь ломаются все привычки из учебников.»

🎯 Ваша задача

  1. Понять, что ломается при сильном дисбалансе и как это чинить.
  2. Освоить class weights, oversampling/undersampling, SMOTE — и их ограничения.
  3. Выбрать порог из экономики и операционных лимитов.

📚 Теория

Что ломается при дисбалансе 1:1000

  1. Accuracy бессмысленна (модуль 6): константа «не фрод» даёт 99.9%.
  2. Функция потерь почти не видит редкий класс: 0.1% примеров дают 0.1% градиента — модель учится игнорировать фрод.
  3. ROC-AUC обманчиво высок; смотрите PR-AUC и precision/recall в рабочей точке.

Способы борьбы

Метод Суть Плюсы / минусы
Class weights (class_weight="balanced", scale_pos_weight) ошибки на редком классе штрафуются сильнее просто, без искажения данных; первый выбор
Undersampling выбросить часть мажоритарного класса быстрее обучение; теряем информацию
Oversampling дублировать редкий класс риск переобучения на дубликаты
SMOTE синтетические примеры между соседями редкого класса помогает слабым моделям; для бустинга часто бесполезен, создаёт нереалистичные точки
Подбор порога не трогать данные, сдвинуть решение обязателен всегда, что бы вы ни делали выше

Практика индустрии: для бустинга — веса классов + подбор порога. Сэмплирование — когда данные не влезают или модель совсем слаба.

Дисбаланс 1:1000 найти фрод среди тысяч честных Precision-Recall кривая рабочая точка: 500 алертов/день, recall 0.62 recall → precision →
При редком классе оценивайте модель по PR-кривой и выбирайте рабочую точку из операционного лимита команды и экономики ошибок.

⚠️ Золотые правила:

Порог из экономики

Ожидаемая ценность алерта при пороге t: V(t) = TP(t)·18000 − FP(t)·400, при ограничении TP(t)+FP(t) ≤ 500/день. Порог — это решение задачи оптимизации, а не константа 0.5.


Что запомнить

  • При дисбалансе: PR-AUC + метрики в рабочей точке; accuracy и «голый» ROC-AUC вводят в заблуждение.
  • Первый инструмент — веса классов; сэмплирование — только train; вероятности после — смещены.
  • Порог выводится из цены ошибок и пропускной способности команды.
  • Отчёт бизнесу — в деньгах.

Дальше в модуле: Практика

Открыть модуль →

Соседние уроки

10 Выжать ещё 2% качества 12 Кто наши клиенты на самом деле?

Программа целиком — 23 урока