Оглавление11 разделов
False positive антифрода означает, что хорошее событие ошибочно отклонено. Партнёр теряет доход, команда получает искажённую картину качества, а источник — неверный label. Снижать ошибку нужно вместе с контролем пропущенного abuse.
Главная проблемаИстинную метку нельзя брать из решения той же системы. Нужен независимый review, подтверждённый outcome или иной эталон с описанной неопределённостью.
Confusion matrix
| Факт / решение | Заблокировано | Разрешено |
|---|---|---|
| Недопустимое | True positive | False negative |
| Допустимое | False positive | True negative |
False positive rate = FP / (FP + TN), а precision блокировки = TP / (TP + FP). Метрики отвечают на разные вопросы и публикуются с числителями, знаменателями и интервалами.
Стратифицированная проверка
Отбирайте строки по rule, score band, source, GEO и денежному влиянию. При итоговой оценке возвращайте веса реальных страт, иначе усиленная проверка редкой причины завысит её долю.
WITH ranked AS (
SELECT e.*,row_number() OVER(
PARTITION BY reason_code,score_band,source_id
ORDER BY md5(event_id||:audit_salt)) rn
FROM antifraud_decisions e
)
SELECT * FROM ranked WHERE rn<=:per_stratum;Денежная функция потерь
expected_loss =
FP * loss_of_rejected_good_event
+ FN * loss_of_missed_abuse
+ review_volume * review_unit_costПорог минимизирует ожидаемую потерю при ограничениях политики и мощности review, а не максимизирует accuracy. При дисбалансе accuracy может быть высокой у бесполезного правила.
Shadow mode и canary
Новое правило сначала рассчитывает решение без влияния на поток. После оценки объёма и outcomes включается небольшой canary с kill switch. Полное включение получает новую rule_version.
Reason codes и апелляции
Каждая блокировка получает reason_code, rule_version и evidence reference. Апелляция создаёт новую версию решения, не стирая исходную. Успешные апелляции становятся calibration signal.
Контроль дрейфа
- Распределение score bands
- FP и FN зрелой проверки
- Approval апелляций
- Mix источников и устройств
- Время review
- Денежный impact
Rejected не всегда fraudEligibility, duplicate, technical и policy требуют отдельных категорий и доказательств.
Неизвестная истина и disagreement review
Во многих случаях окончательная метка недоступна даже эксперту. Храните verdict confirmed_good, confirmed_abuse и unresolved, а не заставляйте reviewer выбирать бинарный ответ. Строки, где модель, правило и два проверяющих расходятся, формируют отдельную очередь: именно они лучше всего показывают неоднозначность определения.
Интервалы для редких ошибок
Доля false positive на двадцати проверках не должна выводиться с точностью до десятых процента. Показывайте количество, оценку и интервал Уилсона либо Bayesian posterior. Сравнение версий выполняется на одинаковом audit design; иначе изменение состава выборки выглядит как улучшение правила.
FP_rate = sum_h(population_weight_h * FP_rate_h)
population_weight_h — реальная доля страты,
а не доля строк в усиленной audit-выборке.Локальная калибровка вместо общего порога
Одинаковый score может иметь разный смысл для нового устройства и знакомого маршрута, крупной суммы и обычной, GEO с хорошей разметкой и сегмента с пропусками. Если вводятся разные пороги, они получают собственные rule_version, функцию потерь и минимальный объём проверки. Скрытая ручная корректировка недопустима.
Критерий безопасного выпуска
- Shadow не ухудшает weighted false-positive loss
- Canary не нарушает денежный guardrail
- Reason codes покрывают основную массу решений
- Unresolved не маскируется как abuse
- Апелляция воспроизводима по сохранённой версии
- Есть автоматический rollback по зрелому сигналу
Вывод
Калибровка антифрода балансирует две ошибки и цену проверки. Независимая выборка измеряет false positive, функция потерь выбирает порог, а shadow и canary защищают production.
Станьте партнёром и начните работать
Перейдите в партнёрскую программу, изучите актуальные условия и выберите подходящий формат сотрудничества.
СТАТЬ ПАРТНЁРОМ
