Material Pedagógico de Machine Learning e Ciência de Dados Aplicada à Segurança Financeira
- Sobre o Projeto
- Arquitetura e Fluxo de Estudo
- Como Configurar e Rodar o Ambiente
- Estrutura do Repositório
- As Visualizações (Gráficos)
- Aulas Práticas e Teoria Abordada
- Boas Práticas de versionamento (Gitignore)
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.
O pipeline analítico estruturado dentro deste projeto segue a ordem natural da rotina de um Cientista de Dados real:
- Ingestão (Data Loading): Leitura cruzada do banco de dados (CSV) protegido por arquitetura PCA (Privacy Component Analysis).
- Análise de Distribuição: Observação crítica da variação grotesca de incidentes Fraudulentos vs Normais (0.2%).
- Escalonamento Preditivo (Scaling): Utilização de
StandardScalerdoScikit-Learnunificando grandezas. - Machine Learning: Execução de penalidades sobre erros (
class_weight='balanced') acopladas à função Regressão Logística. - Avaliação Crítica (Metrics): Exame de limiares probabilísticos, Acurácia, Recall, Precision, e plotagem das Curvas ROC e Precision-Recall.
Siga os passos rigorosos abaixo para colocar o ambiente em funcionamento em sua máquina:
git clone https://github.com/dbranquinho/FraudDetectionPython.git
cd FraudDetectionPythonAs 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 jupyterO 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.csvexatamente na mesma pasta/raiz em que os códigos em Python se encontram. - Nota: Nosso arquivo
.gitignorejá 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.
Abra o arquivo principal do Jupyter diretamente usando o Comando ou interface IDE (VSCode):
jupyter notebook Aula_Fraudes_Cartao_Detalhada.ipynbOrganizamos 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!
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.
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.
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.