Insights

Detecção de fraude em dados públicos: a métrica que importa quando 0.17% dos registros são fraudes

Os sistemas de detecção de fraude baseados em regras detectam a fraude do ano passado e sobrecarregam os analistas com falsos positivos. O aprendizado de máquina é o próximo passo evidente, e os slides de todos os fornecedores mostram um ROC-AUC próximo de 0.98. Construímos uma prova de conceito — como pesquisa, com um conjunto de dados público, não para um cliente — para entender o que esse número realmente significa quando a fraude representa uma fração de um ponto percentual dos dados.

O que construímos

O conjunto de dados é o de transações europeias com cartão disponível publicamente no Kaggle: transações reais e anonimizadas, com 0.1727% rotulado como fraude. Reservamos um conjunto de teste com 56,962 registros e treinamos quatro classificadores com o restante — regressão logística como modelo de referência, depois XGBoost, CatBoost e LightGBM. Sem modelos de grafos, sem pontuação em tempo real, sem assistente de investigação: quatro modelos, uma pergunta.

A pergunta era em qual métrica confiar.

O que medimos

No conjunto de teste reservado:

Modelo ROC-AUC PR-AUC
XGBoost 0.9804 0.8770
CatBoost 0.9768 0.8757
Regressão logística 0.9736 0.7222
LightGBM 0.9529 0.8518

Leia a primeira coluna e todos os modelos parecem excelentes. Leia a segunda e o cenário muda: o modelo de referência que obtém 0.97 em ROC-AUC cai para 0.72 em precisão-revocação, e a diferença entre os modelos com boosting e o de referência — pequena na métrica que todos citam — é grande na que descreve o dia do analista.

A descoberta

ROC-AUC favorece os modelos de eventos raros. Quando 99.83% dos registros são legítimos, um modelo pode ordenar quase tudo corretamente e ainda enviar à equipe de fraude uma fila de alertas que, em sua maioria, estão errados. ROC-AUC recompensa essa ordenação. O AUC de precisão-revocação faz a pergunta que a equipe realmente tem — dos alertas que gero, quantos são fraude e quanta fraude deixo passar — e esse é o número que deve ir no slide.

Os dois modelos com boosting estão próximos, e a escolha é operacional. XGBoost e CatBoost diferem apenas por um erro de arredondamento nas duas métricas. Qual deles será implementado depende da latência, das ferramentas e de quem o mantém — não da classificação de resultados. (Nosso próprio README apontou CatBoost como vencedor; os números do notebook indicam XGBoost. O notebook é a fonte; o README está sendo corrigido. Esse é o tipo de divergência que um conjunto de avaliação existe para detectar.)

Vale a pena manter o modelo de referência. A regressão logística com PR-AUC de 0.72 é o modelo que você implementa na primeira semana enquanto o modelo com boosting conquista seu espaço, e o que a equipe de conformidade consegue interpretar.

O que um sistema em produção ainda precisaria

Tudo o que esta POC deliberadamente não fez. Suas próprias transações, sob seus próprios controles, com o equilíbrio de classes que você realmente tem. Variáveis derivadas de relações — contas que compartilham dispositivos ou endereços de pagamento — que um classificador de um único registro não consegue ver: é aí que as variáveis de grafos justificam seu custo. Pontuação em tempo real para pagamentos, um registro de auditoria que um regulador consiga revisar, monitoramento para o dia em que a fraude se adaptar ao modelo e, acima de tudo, uma fila de alertas ajustada com os analistas que vão usá-la: a ordenação e a explicação determinam se um modelo é usado, e nenhuma métrica offline mede isso.

Este caso de uso está mais distante do software que a maioria das empresas usa do que os outros que prototipamos. Mesmo assim, ele nos ensinou algo geral: escolha a métrica que descreve o dia da pessoa, não a que fica melhor no slide.

“Detecção de fraude em dados públicos: a métrica que importa quando 0.17% dos registros são fraudes” by Martin Prunell is licensed under CC BY SA. Source code examples are licensed under MIT. Categorized under Dados.

Related reading