Esse projeto tem como objetivo estudar técnicas de reamostragem em um dataset desbalanceado em relação à variável alvo e seus impactos no desempenho de modelos de Aprendizado de Máquina. Em uma aplicação, frequentemente, a previsão da classe minoritária é de extrema importância, por exemplo na detecção de doenças raras, e ao não se tratar o desbalanceamento, pode-se observar uma tendência do modelo à classe majoritária. Por isso, deve-se também ajustar as métricas a se levar em consideração na avaliação de desempenho, com o fito de verificar a competência do modelo nesses casos mais raros.
A realização do projeto foi feita por 2 grupos de estudantes de Sistemas de Informação da EACH-USP no segundo semestre de 2025.
Tecnologias Usadas:
A primeira etapa consistiu em realizar a análise exploratória das colunas presentes no dataset, aplicar diferentes métodos de aprendizado de máquina para predizer a classe alvo e registrar as métricas obtidas.
Métricas utilizadas:
- Acurácia;
- Precisão;
- Recall;
- F1-Score;
- ROC-AUC.
Os modelos de AM utilizados foram os seguintes:
A segunda etapa consistiu em utilizar técnicas de reamostragem na base de dados desbalanceada, aplicar os mesmos modelos e registrar as métricas obtidas.
Técnicas de Reamostragem utilizadas:
A terceira etapa consistiu em refletir sobre os resultados obtidos ao fim do projeto e condensar as três etapas em um relatório final. Esse relatório pode ser encontrado na pasta do respectivo grupo.
Membros:
Dataset: Credit Card Fraud Detection
Link para Notebook 1 e para Notebook 2. Link para Relatório Final.
notebook-1.ipynb => Neste foram usados os métodos SMOTE, ENN e SMOTE-ENN;
notebook-2.ipynb => Neste foram usados os métodos SMOTE, Random Oversampling e Random Undersampling.
- Curva de Precisão-Recall
Gráficos são salvos em suas devidas pastas. Além das métricas serem anotadas no aqruivo resultados.xlsx.
/projeto
│
├── modelos
│ ├── <model>
│ │ ├── matriz-confusao-<model>-Desbalanceado.png
│ │ ├── auc-roc-<model>-Desbalanceado.png
│ │ ├── precision-recall-<model>-Desbalanceado.png
│ │ ├── matriz-confusao-<model>-SMOTE.png
│ │ ├── auc-roc-<model>-SMOTE.png
│ │ ├── precision-recall-<model>-SMOTE.png
| | ├── matriz-confusao-<model>-ENN.png
│ │ ├── auc-roc-<model>-ENN.png
│ │ ├── precision-recall-<model>-ENN.png
| | ├── matriz-confusao-<model>-SOMTE-ENN.png
│ │ ├── auc-roc-<model>-SMOTE-ENN.png
│ │ └── precision-recall-<model>-SMOTE-ENN.png
│ └── ...
│ └── ...
| └── auc-roc-curve-<metodo>.png
│ └── ...
| └── pr-recall-curve-<metodo>.png
│ └── ...
│ └── auc-roc-curve-notebook-2.png
│ └── pr-recall-curve-notebook-2.png
│
├── graphics
│ ├── countplot.png
│ └── heatmap-corr.png
│
|
├── resultados.xlsx
│
├── notebook-1.ipynb
└── notebook-2.ipynb
Membros:
Dataset: Telco Customer Churn
A variável alvo desse dataset foi 'Churn' que indica se o cliente cancelou ou não serviço com a empresa. 74% das linhas do dataset apontavam essa classe como falsa, caracterizando o desbalanceamento.
Link para Notebook Link para Relatório Final
(Referências podem ser encontradas no relatório final)