top of page
Buscar

Previsão de fraude em transações de cartão de crédito com Logistic regression

Foto do escritor: William AusenkaWilliam Ausenka

Atualizado: 11 de out. de 2021

Uma análise feita com Logistic Regression



Fonte: Ales Nesetril / Unsplash.com


English version:

https://github.com/williamausenka/ML_estudos_de_caso/blob/main/Creditcard_fraud_Logistic_Regression/Boston%20Housing%20Dataset%20Analysis.pdf


A análise a seguir se refere ao Credit Card Fraud Detection Dataset, um dataset público que contém informações sobre transações, normais e fraudulentas, feitas por cartões de créditos da Europa em setembro de 2013. Download feito no site https://www.kaggle.com/mlg-ulb/creditcardfraud. Utilizou-se o método de machine learning – logistic regression feito na linguagem de programação python para a análise do dataset.

O dataset contém mais de 280.000 transações, das quais apenas 492 são fraudulentas. Isso representa 0.172% de todas as transações, ou seja, temos um dataset desbalanceado, um possível problema para o modelo. O dataset possui 30 features, V1 a V28 (por razões de confidencialidade, não foi possível obter mais informações sobre as features), Time e Amount, o valor da transação. A feature Time contém o tempo decorrido entre a primeira transação e as demais. Não é uma informação relevante para análise, então foi desconsiderada. Amount é o quanto foi gasto na transação, portanto é uma feature possivelmente importante para a análise. V1 a V28 são os restantes das features que foram analisadas. A última coluna do dataset (Class) se refere se a transação foi ou não fraudulenta. Ela é o target do estudo.

O objetivo é fazer um modelo de logistic regression para classificar se uma operação é fraudulenta ou não e verificar qual(is) features são as mais e menos relevantes para o modelo.


Tabela 1 – Dados carregados no jupyter notebook

Fonte: O Autor


Com os dados carregados no jupyter notebook, como visto na tabela 1 (V1 a V5 não apareceram na tabela 1, pois são muitos dados), foi separado em 2 variáveis os inputs e o target. Inputs foram as features V1 a V28 e Amount. Já o target foi Class.

Para uma melhor análise, os dados foram embaralhados randomicamente, já que eles coletados e armazenados numa mesma janela de tempo.

Em seguida, foi feito o balanceamento do dataset, pois o número de transações fraudulentas em relação ao total é muito baixo e isso pode prejudicar o algoritmo do modelo, levando a interpretações e resultados errados.

O próximo passo foi separar o dataset em 80% dados de treino e 20% dados de teste que foram usados para checar a precisão final do modelo com dados novos.


Tabela 2 – Valores dos coeficientes e intercept - dados randomizados

Fonte: O Autor


Figura 1 - Valores dos coeficientes - dados randomizados

Fonte: O Autor


Na tabela 2, temos os valores dos coeficientes para o modelo logisticregression e na figura 1 a representação visual dos valores. Pode-se perceber que o valor de Amount é próximo de zero e não é impactante para o modelo, ou seja, na prática, o valor das transações não é um fator relevante para classificar se a transação é fraudulenta ou não. Pode ser uma transação de R$5,00 ou R$10.000,00, não é relevante. Outras features que não são relevantes são V9, V5. Não é possível verificar a razão desse comportamento, pois não foram fornecidas as informações sobre o que representa cada feature. V22 e V12 se motram as features mais importantes para o modelo, mas, pelo menos motivo apresentado anteriormente, não é possível comentar o motivo do seu impacto.


Tabela 3 – Valores da precisão do modelo – dados randomizados

Fonte: O Autor


Os resultados obtidos da accuracy do modelo podem ser vistos na tabela 3. A diferença obtida com os dados de treino e teste são esperados e, como a diferença entre eles é pequena, não é necessária uma preocupação inicial com overfitting, já que o modelo se comportou bem na presença de novos dados. Então, foi obtido um bom modelo e sem a presença de overfitting, podendo classificar transações fraudulentas com uma accuracy de 95 %, o que é um resultado ótimo para uma operação vital e sensível nos modelos econômicos atuais.


Todo o código você encontra no meu Github: https://github.com/williamausenka/ML_estudos_de_caso/tree/main/Creditcard_fraud_Logistic_Regression


Espero que vocês tenham gostado.

Não deixe de comentar o que você achou da análise

Obrigado e até o próximo post!

90 visualizações0 comentário

Posts recentes

Ver tudo

Comments


bottom of page