|
| 1 | +# Projeto de Deteccao de Anomalias em Cartoes de Credito |
| 2 | + |
| 3 | +Projeto desenvolvido por: Hélio Júnior |
| 4 | +Plataforma de Estudos: DIO - Digital Innovation One |
| 5 | + |
| 6 | +Este projeto aplica tecnicas de Machine Learning para deteccao de fraude em transacoes de cartao de credito usando a base publica hospedada em: |
| 7 | +https://storage.googleapis.com/download.tensorflow.org/data/creditcard.csv |
| 8 | + |
| 9 | +## Objetivo |
| 10 | + |
| 11 | +Comparar modelos e abordagens para classificacao de transacoes fraudulentas, incluindo: |
| 12 | +- Regressao Logistica |
| 13 | +- Random Forest |
| 14 | +- Pipeline com threshold customizado |
| 15 | +- XGBoost |
| 16 | +- Busca de hiperparametros com GridSearchCV |
| 17 | +- Explicabilidade com SHAP (opcional) |
| 18 | + |
| 19 | +## Estrutura do Projeto |
| 20 | + |
| 21 | +- main.py: atalho para iniciar a aplicacao |
| 22 | +- run.ps1: script de execucao com um comando |
| 23 | +- src/main.py: orquestracao principal do fluxo |
| 24 | +- src/data_processing.py: carga e preparo dos dados |
| 25 | +- src/logistic_analysis.py: treino, metricas e graficos da Regressao Logistica |
| 26 | +- src/balancing.py: undersampling e SMOTE |
| 27 | +- src/random_forest_analysis.py: treino e avaliacao de Random Forest |
| 28 | +- src/pipeline_analysis.py: pipeline de padronizacao + Regressao Logistica e threshold customizado |
| 29 | +- src/xgboost_analysis.py: treino, avaliacao e importancia de features do XGBoost |
| 30 | +- src/hyperparameter_tuning.py: ajuste de hiperparametros com GridSearchCV |
| 31 | +- src/shap_analysis.py: explicabilidade com SHAP |
| 32 | +- .gitignore: arquivos e pastas ignorados pelo Git |
| 33 | +- requirements.txt: dependencias do projeto |
| 34 | +- analise.ipynb: notebook para analises adicionais |
| 35 | + |
| 36 | +## Requisitos |
| 37 | + |
| 38 | +- Python 3.10+ |
| 39 | +- Ambiente virtual recomendado |
| 40 | + |
| 41 | +## Instalacao |
| 42 | + |
| 43 | +No PowerShell, dentro da pasta do projeto: |
| 44 | + |
| 45 | +```powershell |
| 46 | +py -3.12 -m venv .venv |
| 47 | +.\.venv\Scripts\Activate.ps1 |
| 48 | +python -m pip install --upgrade pip |
| 49 | +python -m pip install -r requirements.txt |
| 50 | +``` |
| 51 | + |
| 52 | +## Como Executar |
| 53 | + |
| 54 | +```powershell |
| 55 | +python .\main.py |
| 56 | +``` |
| 57 | + |
| 58 | +Ou com um comando dedicado: |
| 59 | + |
| 60 | +```powershell |
| 61 | +.\run.ps1 |
| 62 | +``` |
| 63 | + |
| 64 | +## Testes |
| 65 | + |
| 66 | +Executar testes locais: |
| 67 | + |
| 68 | +```powershell |
| 69 | +pytest -q |
| 70 | +``` |
| 71 | + |
| 72 | +Os testes atuais validam importacao e integridade basica dos modulos. |
| 73 | + |
| 74 | +## CI |
| 75 | + |
| 76 | +Foi adicionado pipeline de CI em .github/workflows/ci.yml para: |
| 77 | +- instalar dependencias |
| 78 | +- executar pytest automaticamente em push e pull request |
| 79 | + |
| 80 | +## Saidas Geradas |
| 81 | + |
| 82 | +Durante a execucao, o projeto: |
| 83 | +- Exibe relatorios de classificacao no terminal para cada modelo |
| 84 | +- Exibe AUC e Average Precision para Regressao Logistica |
| 85 | +- Gera imagens em graficos/: roc_curve.png, precision_recall_curve.png, xgboost_feature_importance.png e shap_bar.png (se SHAP estiver instalado e funcional) |
| 86 | + |
| 87 | +## Observacoes |
| 88 | + |
| 89 | +- Se o pacote SHAP nao estiver instalado, a etapa de explicabilidade e ignorada automaticamente. |
| 90 | +- O backend grafico esta configurado para modo nao interativo (Agg), ideal para execucao em terminal. |
| 91 | + |
| 92 | +## Melhorias Futuras |
| 93 | + |
| 94 | +- Salvar metricas em arquivos CSV/JSON |
| 95 | +- Adicionar comparacao visual entre modelos |
| 96 | +- Inserir validacao cruzada para todos os modelos |
| 97 | +- Criar testes unitarios de comportamento para cada modulo |
| 98 | + |
| 99 | +## Licenca |
| 100 | + |
| 101 | +Projeto para fins educacionais. |
0 commit comments