Skip to content

Latest commit

 

History

21 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

p align="center"> Top 10 Variable

🛡️ Fraud Detection in Credit Cards |

🛡️ Detecção de Fraude em cartão de crédito

This project leverages Machine Learning to identify fraudulent transactions.
Este projeto uses Machine Learning para identificar transações fraudulentas.

The main focus is balancing fraud detection with a seamless customer experience.
O foco principal é equilibrar a detecção de fraude com uma boa experiência para o cliente.

The objective is to analyze transactions: amount, time, location and classify:
Objetivo é analisar as transações: valor, hora, local e classificar:

✅ Legitimate / Not Fraud | Legítimo

🚩 Fraudulent | Fraude

🚀 Insight: the strategic reduction of the dataset revealed that variable V14 is important for distinguishing the transaction type.
🚀 Insight: A redução estratégica do dataset que revelou que a variável V14 é importante para distinguir o tipo de transação.

This enabled a lightweight, fast model with high recall, without compromising precision.
Isso permitiu um modelo leve, rápido e com alto Recall, sem perda de precisão.

The source file was the creditcard.csv from Kaggle.
O arquivo base foi o creditcard.csv do Kaggle.


1. 📈 Code Pipeline | Pipeline do Código

a. Collection: downloaded the original dataset creditcard.csv from kaggle.
Coleta: download do dataset original no Kaggle creditcard.csv.

b. Adjustment: I created a script to reduce the size of the original file, name = creditcard_reduzido10mil.csv.
Ajustamente: criei um scrippt para diminuir o tamanho do original, nome = creditcard_reduzido10mil.csv.

Note: with this i had the insight to analyze both the original dataset and this reduced one, i got different results.
*Observação: com isso tive o insight de fazer análise tanto no dataset original quanto neste reduzido e obtive resultados diferentes. *

c. Preparation: defined X= features and y= target.
Preparação: definir x= caracteristicas e y= alvo

d. Cleaning: data preprocessing and normalization of the amount values.
Limpeza: tratamento de dados e normalização de valores

e. Division: separated 80% of the data for training and 20% for testing to evaluate model learning.
Divisão: separar 80% dos dados para treino e 20% para modelo testar e ver se aprendeu

f. Training: fit the models using the fit() method on the training data.
Treino: ajuste dos modelos utilizando o comando fit() para treinar o modelo

g. Predictions: executed predictions on the test data using the predict() method.
Previsões: execução de predições com base nos dados de teste, comando predict()

h. Metrics: generated the classification report with results for precision, recall, f1-score, accuracy, macro avg.
Métricas: relatório de classificação com os resultados de precision, recall, f1-score, acurácia, macro avg

i. Visualization: confusion matrix, feature importance, precision-recall curve, decision tree and boxplot.
Visualização: matriz de confusão, feature importance, curva precision-recall, árvore de decisão e boxplot


2. 🔬 Data Sampling experiments | Experimentos com Amostragem

To achieve the ideal model i tested the behavior of the Random Forest algorithm across three scenarios = 3 dataset sizes:
Para chegar ao modelo ideal, testei o comportamento do algoritmo Random Forest em três cenários = 3 tamanhos de dataset:

  • Scenario 1 = original dataset: 284,807 records (only 0,17% fraud). The extreme imbalance masks reality through high accuracy.
    Cenário 1 = dataset Original: 284.807 registros (apenas 0,17% são fraudes). O desbalanceamento extremo mascara a realidade através da acurácia.

  • Scenario 2 = proportional reduction : 10,000 records, keeping the original proportion which resulted in only 17 cases of fraud. The model did not have enough data to learn the pattern.
    Cenário 2 = redução proporcional : 10.000 registros, mantendo a proporção original que eram apenas 17 casos de fraudes. O modelo não teve dados suficientes para aprender o padrão

  • Scenario 3 = strategic reduction, Data Sampling : 10,000 records, but keeping all 492 original fraud cases . I used Random Undersampling, reducing the data by 96% while retaining all 492 fraud cases, proportion rose to 4,92%.
    *Cenário 3 = redução estratégica Data Sampling : 10.000 registros, mas mantendo todos os 492 casos originais de fraude. O usei Random Undersampling, reduzi os dados em 96%, mantendo todos os 492 casos de fraude, proporção subiu para 4,92%.

Scenario | Cenário Description | Descrição Result | Resultado
1. Original | 1. Original 284,807 records (0.17% fraud) | 284.807 registros (0,17% fraude) Misleading accuracy; V17 appeared to be the most important feature. | Acurácia enganosa; V17 parecia mais importante.
2. Proportional | 2. Proporcional 10,000 records (17 frauds) | 10.000 registros (17 fraudes) Insufficient data for the model to learn. | Dados insuficientes para o aprendizado.
3. Strategic | 3. Estratégico 10,000 records (492 frauds) | 10.000 registros (492 fraudes) V14 revealed as a critical indicator. Ideal balance achieved. | V14 revelada como indicador crítico. Equilíbrio ideal.

3rd Scenario this was the only approach that allowed the model to identify V14 as a critical feature for transaction classification, achieving the ideal balance between Precision and Recall measured by the Macro Avg.
3º cenário foi o único que permitiu ao modelo identificar a V14 como variável de importância para identificar o tipo de transação e alcançando o equilíbrio ideal entre Recall e Precision detectada através da Macro Avg. The other scenarios identified V17 as the most important feature.
Os outros cenários identificaram a V17 como variável de importância.


3.🛠️ Methodology and tools | Metodologia e Ferramentas

Supervised Classification Model | Modelo de Classificação.

I performed a comparative test betweem 2 algorithms Random Forest e Logistic Regression.
Realizei um teste comparativo entre os 2 algoritmos Random Forest e Logistic Regression.

The Random Forest model achieved the best performance.
O modelo Random Forest teve o melhor desempenho.

  • Random Forest: A model based on decision trees. This model shows which features were the most important when deciding whether a transaction was fraud or not.
    *Random Forest: Modelo baseado em árvores de decisão. Este modelo mostra quais variáveis foram mais importantes para decidir se a transaçao é fraude ou não. *

  • Logistic Regression: Linear model based on mathematical formulas and weights.
    Logistic Regression: Modelo linear baseado em fórmulas matemáticas.


📊 4. Metrics result | Resultado das métricas

  • Precision=99% out of all the times the model predicted "fraud", it was right.
    Precisão=99% de todas as vezes que o modelo disse é "Fraude", ele acertou.

    • Therefore the model is reliable in avoiding false positive which means blocking a case that is not fraud (honest customer).
      Portanto o modelo é confiável para evitar o Falso Positivo que é bloquear um caso que não e fraude (cliente honesto).
  • Recall=81% out of all the fraud cases that actually happened the model managed to cath 81%.
    Revocação=81%* de todas as fraudes que realmente aconteceram o modelo conseguiu pegar 81%.*

    • Therefore the model is conservative it lets some frauds slip through but does not interrupt the honest customer.
      Portanto o modelo é conservador, deixa passar algumas fraude mas não interrompe o cliente honesto.
    • Note: the challenge is to balance recall with precision to avoid blocking non freaud cases honest customer.
      Observação: o desafio é equilibrar o Recall com a Precision para não bloquear casos de não fraude, cliente honesto.
  • F1-Score=89% it is the harmonic mean between Precision and Recall. Since both were high, the F1 shows that the model is well-balanced. Therefore, looking at Macro AVG, will be decisive.
    F1-Score=89% é a média harmônica entre a Precisão e o Recall. Como os dois estão altos, o F1 mostra que o modelo é equilibrado. Então olhar para o Macro AVG, será decisivo.

  • Macro Avg=99% it is high, which means the model successfully learned and proved its effectiveness.
    Macro Avg=99% ele está alto, significa que aprendeu e prova que o modelo é um sucesso.

  • Accuracy=99% it is high and here lies the biggest danger of the model. It reached almost 100% accuracy, but on its own, it tells us nothing.
    *Acurácia=99% alta e aqui está o maior perigo do modelo, tem 100% de acurácia, mas ela sozinha não diz nada. *


📊 5. Visualizações

  • Confusion Matrix-heatmap| mostra os acertos e erros
    *Matriz de Confusão: mostra os acertos e erros Ela divide os resultados em quatro quadrantes:
    **
  • ✅ Verdadeiro Positivo : = SUCESSO - Era fraude e o modelo acertou - Canto inferior direito.
    **
  • ✅ Verdadeiro Negativo : = SUCESSO - Era compra normal e o modelo liberou - Canto superior esquerdo.
    **
  • ❌ Falso Positivo : = ERRO - Era compra normal, mas o modelo bloqueou - Canto superior direito.
    **
  • ❌ Falso Negativo : = ERRO - Era fraude, mas o modelo deixou passar - Canto inferior esquerdo.
    **

  • Feature Importance/Graphics: it displays variables in order of importance. In this project the variable V14 is at the top, meaning it is the most important variable for fraud detection.
    *Importância das Variáveis/Gráfico: mostra as variáveis por ordem de importância. Neste projeto a variável V14 está no topo, significando que ela é a variável mais importante para detectarmos uma fraude.
  • Curva Precision-Recall: este gráfico mostra a estabilidade; se a linha cair muito rápido, o modelo é instável para casos raros.
    **
    • Visualização de uma Árvore: O Random Forest cria várias árvores. Analisei a primeira/index 0 para entender a lógica e as perguntas que o modelo faz tipo "O valor da compra é > X?" Se sim, vá para a esquerda...".
      **
  • BoxPlot: Para visualização da variável importante..

    **

🎯 6. Conclusão:

O modelo é um sucesso.
Tem um aprendizado equilibrado garantindo uma confiabilidade de 99% definido pela métrica Macro Avg.
Insight : ele identificou a V14 como outra variável importante para distinguir o tipo de transação.
No 3º arquivo consegui um resultado técnico muito próximo ao do arquivo completo que era muito grande processando apenas 10 mil registros.

  • Cuidado, nem sempre a Acurácia de 100% define se o modelo e bom ou ruim, temos que também olhar para as outras métricas : precision, recall e macro avg.
    **

Análise detalhada, resultados e conclusão

Análise<

About

Fraud detection in credit cards using Random Forest & strategic sampling | Detecção de fraudes em cartões de crédito com Random Forest e amostragem estratégica.

Topics

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages