Skip to content

DavidPanduro/financial_fraud_detection

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Projeto: Financial Fraud Detection

Por David Panduro 💻

image

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.

image

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.

image

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.

image

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).

image

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

image

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).
image

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.

image

Fig.07. Performance dos Modelos - Acurácia, Presição e Recall



Por último, temos o gráfico comparativo das CURVAS ROC dos modelos.
image

Fig.08. Performance dos Modelos - Curva ROC



Releases

No releases published

Packages

No packages published