Este projeto concentra-se na análise de um conjunto de dados relacionado à deteção de fraudes em cartões de crédito, disponibilizado pela plataforma Kaggle, reconhecida por sua vasta coleção de conjuntos de dados e desafios de ciência de dados.
O conjunto de dados em questão abrange uma variedade de características numéricas, cada uma possivelmente contendo informações valiosas para identificar padrões suspeitos de atividades fraudulentas. O objetivo principal deste projeto é realizar uma análise abrangente desses dados, empregando técnicas de análise exploratória e modelos de aprendizado de máquina para descobrir insights significativos.
Esta introdução estabelece o contexto e a importância da análise de dados no contexto da deteção de fraudes em cartões de crédito e outline o escopo do trabalho, delineando as etapas que serão abordadas ao longo do projeto.
Base de dados:
https://www.kaggle.com/datasets/dhanushnarayananr/credit-card-fraud
Colunas da base de dados:
Importação dos dados para a realização da análise exploratória e, mais tarde, a criação do relatório HTML através do ydata_profilling.
Características da base de dados (form, head e tail) e a descrição de cada coluna. Com o comando knowledge.form, podemos ver quantas linhas e colunas existem. E com o head() e tail(), temos uma visualização do inicio e do fim da base de dados.
Depois destes comandos, utilizamos knowledge.data() para perceber a tipologia de cada coluna. Com o resultado deste comando, podemos então ver que todos os dados são numéricos com casas decimais.
E com knowledge.describe() podemos ter dados estatísticos das colunas:
Com knowledge.isnull().sum(), podemos ver que não existem dados nulos:
O comando knowledge.distinctive() mostra o complete de valores únicos na base de dados. Pelo que, no caso da Credit score Card Fraud, se destacam algumas colunas, nomeadamente, as últimas cinco que apresentam dois valores nos seus dados (0 e 1 — valores booleanos):
No relatório de pré-visualização dos dados através do ydata_profilling, podemos ver uma análise resumida da estrutura e das características dos dados. Este relatório inclui estatísticas básicas como a média, mediana, desvio padrão, mínimo e máximo para cada variável numérica, além da contagem de valores únicos e valores nulos. Também podemos visualizar distribuições de frequência para variáveis categóricas e histogramas para variáveis numéricas, permitindo uma compreensão rápida da natureza dos dados e identificação de padrões preliminares. Estes valores estatísticos já foram explorados anteriormente, contudo, fazendo a analise através do ydata_profilling, podes ter estes resultados mais rápido.
Não esquecendo que no yprofilling, além das informações básicas sobre a estrutura dos dados, também são destacados alertas importantes que podem indicar problemas ou anomalias nos dados. Esses alertas podem incluir a presença de valores nulos, valores extremos (outliers), distribuições muito assimétricas (skewed), entre outros. Os alertas são cruciais para identificar potenciais questões nos dados e orientar o processo de pré-processamento e análise mais aprofundada.
Seleção aleatória de uma coluna, para posterior visualização estatística:
Após a análise exploratória, no qual foi possível identificar a ausência de valores nulos e constatamos que todas as colunas são do tipo numérico (int ou float), optou-se por utilizar todas as colunas na fase inicial de treinamento dos modelos de previsão. Posteriormente, para testarmos qual o melhor modelo, o número de colunas foi reduzido, agrupando-as conforme categorias definidas. Mas depois de algumas tentativas, chegamos a conclusão de que os modelos se comportavam melhor utilizando todas as colunas.
Tentativa 1 — Correr modelos básicos com todas as colunas
- Criação da variável X contendo todos os dados da tabela menos a coluna ‘fraud’, enquanto a variável Y (goal) corresponde somente à coluna ‘fraud’.
2. Importação do train_test_split, para a divisão da amostra:
3. Execução do match e amostra dos resultados:
Tentativa 2 — Implementação do Heatmap para visualização da correlação entre os dados
- Aplicar a grelha Heatmap para ajudar na decisão da escolha da remoção de colunas:
2. Com dados apenas da coluna “ratio_to_median_purchase_price”, cujo valor no Heatmap é o mais próximo de 1:
3. Com dados das colunas “ratio_to_median_purchase_price”, “distance_from_home” e “online_order” cujos valores são os mais próximos de 1:
4. Com dados de todas as colunas da base de dados, exceto “repeat_retailer”, que tem o valor mais fraco, no Heatmap.
Depois de muitas tentativas, para além das descritas em cima, a 1ª tentativa destacou-se como a melhor opção, pois revelou uma melhor efficiency, alcançando resultados mais próximos de 100%. Isto sugere que a abordagem inicial de usar todas as colunas para o treino dos modelos foi eficaz, permitindo que estes capturassem com precisão os padrões e relações nos dados. Estes resultados sublinham a importância de uma análise exploratória abrangente e a seleção criteriosa das colunas para o treino dos modelos, contribuindo para uma melhor capacidade de previsão e tomada de decisões.
Neste projeto, realizamos uma análise exploratória dos dados para compreender melhor as suas características e identificar padrões relevantes. Observamos que as características numéricas apresentam correlações distintas, sendo algumas mais fortemente associadas à variável alvo “fraude”.
Em seguida, dividimos os dados em conjuntos de treino e teste e aplicamos diferentes algoritmos de classificação, tal como a árvore de decisão, KNN (vizinhos mais próximos), e a regressão logística, entre outros. Os resultados obtidos foram bastante promissores, com altas taxas de precisão para todos os modelos testados.
Nomeadamente o modelo de árvore de decisão, pois alcançou uma precisão excepcionalmente alta — 99.999%, seguido pelo modelo KNN, com diferentes números de vizinhos, e a regressão logística, que obtiveram precisões em torno de 98–95%. Estes resultados demonstram a eficácia dos modelos na detecção de fraudes em transações com cartão de crédito.
Em suma, este projeto ilustra a importância da análise de dados, e do uso de técnicas de Machine Studying na detecção de fraudes financeiras. Estas abordagens têm o potencial de auxiliar instituições financeiras na identificação precoce de atividades fraudulentas, protegendo assim os consumidores e evitando prejuízos financeiros.
Além disso, ressalta a necessidade contínua de aprimoramento e desenvolvimento de modelos mais robustos e precisos para lidar com a crescente sofisticação de práticas fraudulentas. Ao implementar tais modelos e abordagens analíticas, podemos fortalecer a segurança do sistema financeiro e promover maior confiança nas transações com cartão de crédito.
Trabalho realizado por: Icaro Sampaio, Mariana Santos e Sergio Lopes.