Desenvolví um Modelo para detecção de fraude financeiro de boletos bancários, para um Agente Financeiro muito relevante dentro do Sistema Financeiro Brasileiro.
A contrucção das variáveis será baseado no histórico transaccional dos clientes, nas características particulares do cliente - sem considerar dados sensíveis (cpf, rg, etc).
Os nomes das variáveis foram encapsulados para resguardar a privacidade dos dados.
Fig.01. Conjunto de Dados
A nossa amostra para analise contou de 1.148 registros, e correpondendo a caracteristica do problema apresenta classes totalmente desbalanceadas, situação que foi atendida mediante aplicação de SMOTE.
Fig.02. Proporção das Classes
A princípio analisamos o conjunto de dados com o intuito de achar as features que podem ter maior significancia para a melhor generalização do nosso modelo.
Para isso passamos pela Análise Univariada para ver aspectos como distribuição, dispersão, medidas de resumo, com o objetivo de compreender as características de cada uma das variáveis individualmente.
Fig.03. Distribuição da Classe Alvo (Fraude / Não Fraude)
Important
A continuação procedemos com a Análise Bivariada. Com isso, esperamos ver se cada uma das variáveis consegue ser significativa para discriminar uma classe da outra (fraude/não fraude).
Fig.04. Análise Bivariada (Fraude / Não Fraude)
Além disso, temos a **Análise Multivariada** apresentando um quadro de Correlações incluindo o método Pearson.
Important
As correlações são importantes para tentar evitar a Multicolinearidade
Fig.05. Correlações
Entre Análise Univariada e Análises Bivariada já conseguimos um feeling de quais features consideraremos para aplicar a modelagem. Já com a Multivariada consideramos retirar alguma variável ou combinar com outra variável para evitar Multicolinearidade.
Depois do feeling precisamos aplicar métodos sofisticados como WOE (Peso das Evidencias), para saber quais variáveis, mediante tentativa de binarização, carregam um valor de informação significativo.
Também aplicamos o Método Boruta que cria variáveis sombras, aplica random forest e finaliza ccom uma distribuição binária para seleção das melhores features. Random FOrest Best Selection é mais um método que implementamos na nossa análise. E finalmente, aplicamos Recursive Feature Elimination (RFE).
Fig.06. Best Feature Selection BORUTA
Warning
Cabe mencionar que não avaliamos o modelo mediante binarização proveniente do método WOE. Neste caso só usamos WOE como referencia no processo de seleção das features.
Aplicamos Algoritmos como Decision Tree, Regressão Logistica, Random Forest e XGBoost. Depois Comparamos as distintas Performances destes.
Fig.07. Performance dos Modelos - Acurácia, Presição e Recall
Por último, temos o gráfico comparativo das CURVAS ROC dos modelos.
Fig.08. Performance dos Modelos - Curva ROC