Skip to content

dbranquinho/FraudDetectionPython

Repository files navigation

🕵️‍♂️ Detecção de Fraudes em Cartões de Crédito

Material Pedagógico de Machine Learning e Ciência de Dados Aplicada à Segurança Financeira


📖 Índice


🎯 Sobre o Projeto

Este repositório foi criado com o propósito exclusivamente acadêmico e didático para alunos da FIAP, focado em ensinar como construir uma Inteligência Artificial capaz de avaliar e identificar fraudes em faturas de cartões de crédito.

O aprendizado aqui vai muito além de "desenvolver código". O foco deste projeto é introduzir os alunos ao maior pesadelo dos Bancos: O Desbalanceamento de Dados, além de ensinar à interpretar matrizes de erro, sensibilidade investigativa e tomar decisões de negócio avaliando a vida financeira de clientes normais frente a um ataque cibernético.

🏗️ Arquitetura e Fluxo de Estudo

O pipeline analítico estruturado dentro deste projeto segue a ordem natural da rotina de um Cientista de Dados real:

  1. Ingestão (Data Loading): Leitura cruzada do banco de dados (CSV) protegido por arquitetura PCA (Privacy Component Analysis).
  2. Análise de Distribuição: Observação crítica da variação grotesca de incidentes Fraudulentos vs Normais (0.2%).
  3. Escalonamento Preditivo (Scaling): Utilização de StandardScaler do Scikit-Learn unificando grandezas.
  4. Machine Learning: Execução de penalidades sobre erros (class_weight='balanced') acopladas à função Regressão Logística.
  5. Avaliação Crítica (Metrics): Exame de limiares probabilísticos, Acurácia, Recall, Precision, e plotagem das Curvas ROC e Precision-Recall.

⚙️ Como Configurar e Rodar o Ambiente

Siga os passos rigorosos abaixo para colocar o ambiente em funcionamento em sua máquina:

1. Clonar este repositório

git clone https://github.com/dbranquinho/FraudDetectionPython.git
cd FraudDetectionPython

2. Instalação das Dependências

As bibliotecas utilizadas garantem o processamento de matemática avançada e geração de interface gráfica rica para avaliação de qualidade do modelo desenvolvido:

pip install pandas scikit-learn matplotlib seaborn jupyter

3. A Base de Dados (Download Direto)

O arquivo original creditcard.csv é um Big Data contendo quase 300 mil transações. Para evitar problemas de limite de tamanho em nossa sala de aula e no GitHub, o arquivo foi hospedado de forma pública em um Drive de alta velocidade. Todos com acesso a este repositório poderão baixá-la sem precisar criar uma conta ou de restrições.

  • 📥 CLIQUE AQUI PARA BAIXAR A BASE DE DADOS (GOOGLE DRIVE)
  • Após o download, cole o arquivo creditcard.csv exatamente na mesma pasta/raiz em que os códigos em Python se encontram.
  • Nota: Nosso arquivo .gitignore já está protegendo este repositório, garantindo que o seu arquivo de dados local gigante nunca seja enviado indevidamente de volta para seu GitHub pessoal em caso de commits.

4. Iniciando a Aula Prática

Abra o arquivo principal do Jupyter diretamente usando o Comando ou interface IDE (VSCode):

jupyter notebook Aula_Fraudes_Cartao_Detalhada.ipynb

📂 Estrutura do Repositório

Organizamos o código fonte para que estudantes iniciantes e veteranos se achem rapidamente.

📦 FraudDetectionPython/
├── 📄 .gitignore                     # Proteção essencial para impedir envio de Banco de Dados CSV via Git
├── 📓 Aula_Fraudes_Cartao_Detalhada.ipynb # O CADERNO DE EXERCÍCIOS OFICIAL. (Contém a explicação profunda da aula)
├── 📓 Aula_Fraudes_Cartao.ipynb      # Versão limpa da aula com exercícios rápidos e gráficos.
├── 🐍 build_notebook.py              # Script interno utlizado para gerar as aulas acima. (Uso do professor)
├── 🐍 detect.py                      # Um script de código Python CLI, puro e executável para Servidores locais.
├── 📊 aulateste.pptx                 # A Apresentação de slides contendo resumos e discussões da disciplina
└── 📖 README.md                      # A documentação que você está lendo agora!

📈 As Visualizações (Gráficos)

Uma das etapas chave deste bloco pedagógico é a elaboração interativa de gráficos utilizando Seaborn e Matplotlib:

  • Gráfico de Contagem Logarítmica: Altera o piso do gráfico (eixo Y) em ordens de grandeza de 10x para evidenciar estatísticas encobertas.
  • Matriz Térmica (Heatmap de Confusão): Coloração das diagonais que mostram quantas contas honestas foram bloqueadas ("Falsos Positivos") versus perdas de dinheiro letal onde a I.A vacilou ("Falsos Negativos").
  • Área sob o Radar (AUC/ROC Curve): Diagnóstico mundial do Sistema (Mostrando taxa real de sucesso balanceada aos falsos alarmes emitidos).
  • Densidade de Probabilidade (Threshold de Corte): Exploração do limbo cinzento onde transações não possuem 0% ou 100% absolutos da matemática da IA.

🎓 Aulas Práticas e Teoria Abordada

Os alunos que concluírem o Caderno Aula_Fraudes_Cartao_Detalhada ganharão base teórica rica para rebater reuniões reais com diretores usando pautas de Machine Learning:

  • O que é Acurácia frente ao mundo real em bancos e por que não confiar nela em dados desbalanceados.
  • Qual a relevância da métrica Sensibilidade (Recall) vs a teimosia em reter Precisão (Precision).
  • Separações virgens de Teste contra Contaminação Base de Treinamento.

🛡️ Boas Práticas de versionamento (Gitignore)

O .gitignore incluso neste repositório impede que estudantes desavisados enviem o imenso arquivo de transações e estalem o limite máximo de repositórios do GitHub configurado para Single Objects (>100mb). Essa blindagem os protege do fatal erro: Encountered 1 file(s) that should have been pointers, but weren't: Large files detected.


Com ❤️ para a próxima geração de Cientistas de Dados.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors