# nelsonaraujo9/aiproject architecture

> Architecture diagram of the GitHub repository nelsonaraujo9/aiproject, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-24). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/nelsonaraujo9/aiproject
- Repository: https://github.com/nelsonaraujo9/aiproject

## Overview

Este repositório é um projeto académico de deteção de fraude e risco bancário por classificação supervisionada. O fluxo principal parte da execução do script, carrega os datasets, prepara e divide os dados, treina três modelos, avalia-os e produz gráficos e resumos de resultados. O notebook oferece uma via de análise adicional. As ligações refletem o fluxo explícito em `fraud_modeling.py`; não inferi detalhes de implementação do notebook nem de subsistemas não amostrados.

Main entry points: [`src/fraud_modeling.py`](https://github.com/nelsonaraujo9/aiproject/blob/main/src/fraud_modeling.py) (Script principal), [`data/creditcard.csv.zip`](https://github.com/nelsonaraujo9/aiproject/blob/main/data/creditcard.csv.zip) (Transações cartão), [`data/bank.csv`](https://github.com/nelsonaraujo9/aiproject/blob/main/data/bank.csv) (Dados bancários), [`fraud_detection_analysis.ipynb`](https://github.com/nelsonaraujo9/aiproject/blob/main/fraud_detection_analysis.ipynb) (Notebook de análise)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_input["Dados de entrada"]
  node_credit_data["Transações cartão<br/>[creditcard.csv.zip]"]
  node_bank_data["Dados bancários<br/>[bank.csv]"]
  node_dataset_loader["Carga e amostragem<br/>[fraud_modeling.py]"]
  node_labeling["Rotulagem binária<br/>[fraud_modeling.py]"]
end

subgraph group_modeling["Modelação e avaliação"]
  node_runner["Script principal<br/>[fraud_modeling.py]"]
  node_notebook["Notebook de análise"]
  node_split["Divisão treino/teste<br/>[fraud_modeling.py]"]
  node_preprocess["Pré-processamento<br/>[fraud_modeling.py]"]
  node_models["Modelos classificadores<br/>[fraud_modeling.py]"]
  node_evaluation["Métricas e previsões<br/>[fraud_modeling.py]"]
end

subgraph group_outputs["Resultados e visualização"]
  node_plotting["Gráficos de avaliação<br/>[fraud_modeling.py]"]
  node_figures["Gráficos gerados"]
  node_summaries["Resumos de resultados"]
  node_dataset_summary["Resumo dos datasets"]
end

node_researcher(("Investigador"))

node_researcher -->|"executa"| node_runner
node_researcher -.->|"analisa"| node_notebook
node_runner -->|"carrega dados"| node_dataset_loader
node_dataset_loader -->|"lê"| node_credit_data
node_dataset_loader -->|"lê"| node_bank_data
node_dataset_loader -->|"prepara rótulos"| node_labeling
node_runner -->|"avalia dataset"| node_split
node_split -->|"prepara atributos"| node_preprocess
node_preprocess -->|"transforma dados"| node_models
node_split -->|"fornece treino/teste"| node_models
node_models -->|"gera previsões"| node_evaluation
node_runner -->|"gera gráficos"| node_plotting
node_plotting -->|"grava"| node_figures
node_plotting -->|"conta classes"| node_dataset_loader
node_runner -->|"grava resultados"| node_summaries
node_runner -->|"grava estatísticas"| node_dataset_summary

click node_runner "https://github.com/nelsonaraujo9/aiproject/blob/main/src/fraud_modeling.py"
click node_notebook "https://github.com/nelsonaraujo9/aiproject/blob/main/fraud_detection_analysis.ipynb"
click node_credit_data "https://github.com/nelsonaraujo9/aiproject/blob/main/data/creditcard.csv.zip"
click node_bank_data "https://github.com/nelsonaraujo9/aiproject/blob/main/data/bank.csv"
click node_dataset_loader "https://github.com/nelsonaraujo9/aiproject/blob/main/src/fraud_modeling.py"
click node_labeling "https://github.com/nelsonaraujo9/aiproject/blob/main/src/fraud_modeling.py"
click node_split "https://github.com/nelsonaraujo9/aiproject/blob/main/src/fraud_modeling.py"
click node_preprocess "https://github.com/nelsonaraujo9/aiproject/blob/main/src/fraud_modeling.py"
click node_models "https://github.com/nelsonaraujo9/aiproject/blob/main/src/fraud_modeling.py"
click node_evaluation "https://github.com/nelsonaraujo9/aiproject/blob/main/src/fraud_modeling.py"
click node_plotting "https://github.com/nelsonaraujo9/aiproject/blob/main/src/fraud_modeling.py"
click node_figures "https://github.com/nelsonaraujo9/aiproject/tree/main/figures"
click node_summaries "https://github.com/nelsonaraujo9/aiproject/blob/main/reports/results_summary.csv"
click node_dataset_summary "https://github.com/nelsonaraujo9/aiproject/blob/main/reports/datasets_summary.csv"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_credit_data,node_bank_data,node_dataset_loader,node_labeling toneBlue
class node_runner,node_notebook,node_split,node_preprocess,node_models,node_evaluation toneAmber
class node_plotting,node_figures,node_summaries,node_dataset_summary toneMint
class node_researcher toneIndigo
```

## Components

### Dados de entrada

- [Transações cartão](https://github.com/nelsonaraujo9/aiproject/blob/main/data/creditcard.csv.zip): `data/creditcard.csv.zip`
- [Dados bancários](https://github.com/nelsonaraujo9/aiproject/blob/main/data/bank.csv): `data/bank.csv`
- [Carga e amostragem](https://github.com/nelsonaraujo9/aiproject/blob/main/src/fraud_modeling.py): `src/fraud_modeling.py`
- [Rotulagem binária](https://github.com/nelsonaraujo9/aiproject/blob/main/src/fraud_modeling.py): `src/fraud_modeling.py`

### Modelação e avaliação

- [Script principal](https://github.com/nelsonaraujo9/aiproject/blob/main/src/fraud_modeling.py): `src/fraud_modeling.py`
- [Notebook de análise](https://github.com/nelsonaraujo9/aiproject/blob/main/fraud_detection_analysis.ipynb): `fraud_detection_analysis.ipynb`
- [Divisão treino/teste](https://github.com/nelsonaraujo9/aiproject/blob/main/src/fraud_modeling.py): `src/fraud_modeling.py`
- [Pré-processamento](https://github.com/nelsonaraujo9/aiproject/blob/main/src/fraud_modeling.py): `src/fraud_modeling.py`
- [Modelos classificadores](https://github.com/nelsonaraujo9/aiproject/blob/main/src/fraud_modeling.py): `src/fraud_modeling.py`
- [Métricas e previsões](https://github.com/nelsonaraujo9/aiproject/blob/main/src/fraud_modeling.py): `src/fraud_modeling.py`

### Resultados e visualização

- [Gráficos de avaliação](https://github.com/nelsonaraujo9/aiproject/blob/main/src/fraud_modeling.py): `src/fraud_modeling.py`
- [Gráficos gerados](https://github.com/nelsonaraujo9/aiproject/tree/main/figures): `figures`
- [Resumos de resultados](https://github.com/nelsonaraujo9/aiproject/blob/main/reports/results_summary.csv): `reports/results_summary.csv`
- [Resumo dos datasets](https://github.com/nelsonaraujo9/aiproject/blob/main/reports/datasets_summary.csv): `reports/datasets_summary.csv`

### Other components

- **Investigador**

## Connections

- Investigador → Script principal: executa
- Investigador → Notebook de análise: analisa
- Script principal → Carga e amostragem: carrega dados
- Carga e amostragem → Transações cartão: lê
- Carga e amostragem → Dados bancários: lê
- Carga e amostragem → Rotulagem binária: prepara rótulos
- Script principal → Divisão treino/teste: avalia dataset
- Divisão treino/teste → Pré-processamento: prepara atributos
- Pré-processamento → Modelos classificadores: transforma dados
- Divisão treino/teste → Modelos classificadores: fornece treino/teste
- Modelos classificadores → Métricas e previsões: gera previsões
- Script principal → Gráficos de avaliação: gera gráficos
- Gráficos de avaliação → Gráficos gerados: grava
- Gráficos de avaliação → Carga e amostragem: conta classes
- Script principal → Resumos de resultados: grava resultados
- Script principal → Resumo dos datasets: grava estatísticas
