Скоринг-модель
Аддитивная scorecard-модель Score 0–100 — формула, правила, обработка неполных данных.
Скоринг-модель
Итоговый балл строится по аддитивной scorecard-модели: базовое значение плюс взвешенные корректировки от сработавших правил, ограниченные диапазоном 0–100.
Формула
Score = clip(base + Σ_{r ∈ fired} w_r, 0, 100)Каждое правило — предикат над признаками с весом (штраф или бонус). Правила декларативны и снабжены обязательной человекочитаемой расшифровкой: в ответе API возвращается не только балл, но и список сработавших правил — объяснение доступно клиенту и его комплаенсу.
Почему scorecard, а не ML
Выбрана та же парадигма, что в банковском FICO-скоринге, по трём причинам:
- Объяснимость — требование ТЗ: B2B-клиент должен видеть, за что снижен балл (комплаенс-аудит). ML-модель — «чёрный ящик».
- Отсутствие размеченной выборки — на старте нет датасета «мошенник / не мошенник» для обучения; экспертные правила — единственный работающий вариант.
- Воспроизводимость — одинаковый профиль всегда даёт одинаковый балл (требование к API: идемпотентность и детерминизм).
Примеры правил
Пороги заданы в декларативном слое и калибруются без релизов.
| Правило | Условие | Эффект | Обоснование |
|---|---|---|---|
| Кластер совместного владения | graph.cluster_size ≥ 3 | −10 | Три и более связанных адреса — статистически значимый признак мультиаккаунтинга |
| Концентрация источника | graph.fan_in_top1_share > 0.8 | −5 | Финансирование из одного источника — подконтрольность |
| Свежий активный кошелёк | малый account_age_days при высоком tx_per_month | штраф | Одноразовый адрес для обхода лимитов |
| Нулевой gambling-flow | gambling_flow_usd = 0 при заявленном гемблинг-контексте | нейтрально / бонус | Нет прямой вовлечённости |
Веса и пороги калибруются на исторических данных клиента; сама структура модели (список признаков и правил) стабильна.
Принцип «не наказывать за неполноту данных»
Признак truncated_history фиксирует, что история транзакций получена не полностью (лимиты API провайдера). Правила, зависящие от полноты истории (fan-метрики, turnover), при усечённой истории интерпретируются консервативно — в сторону меньшей уверенности, а не в сторону штрафа.
Это критично для B2B: ложноположительный штраф блокирует реального игрока и стоит клиенту денег. Поэтому отсутствие данных по признаку не ухудшает балл — снижается лишь уверенность (confidence) результата.