Treinamento do modelo
Treinamento de modelo de machine learning
1- Configuração do ambiente
bibliotecas importadas:
Manipulação de dados: pandas, numpy.
Visualização de dados: seaborn, matplotlib.pyplot, scikitplot.
Machine Learning (Pré-processamento e métricas): scikit-learn, imblearn, xgboost, shap, hyperopt.
Outras utilidades: pickle, os, re, datetime, pytz.
2 - Preparação dos Dados
Leitura de Dados: O script carrega um conjunto de dados de um arquivo CSV para um DataFrame do pandas.
Seleção das colunas que vão participar do treinamento.
3 - Pré-processamento de Dados
Codificação de Características: Utilização de codificação one-hot para transformar características categóricas.
4 - Treinamento
Modelo Utilizado: XGBoost (Extreme Gradient Boosting).
Para mais informações sobre o funcionamento XGBoost acesse:
(Recomendo fortemente os dois primeiros vídeos)
- Understanding XGBoost - A Comprehensive Guide (YouTube Video)- Parte 1
- XGBoost in Python from Start to Finish (YouTube Video) - Parte 2
- XGBoost Explained (Kaggle) (YouTube Video) - Parte 3
- XGBoost Machine Learning Algorithm Explained (YouTube Video) - Parte 3
- XGBoost - GeeksforGeeks
- An End-to-End Guide to Understand the Math behind XGBoost - Analytics Vidhya
- XGBoost Documentation
Ajuste de Hiperparâmetros:
Implementação de uma função para ajuste de hiperparâmetros (hipertunnig) usando validação cruzada (Cross-validation). Vale destacar que o SMOTE foi aplicado dentro de cada segmentação de dados da etapa da validação cruzada.
Técnicas de otimização: hyperopt e skopt.
Treinamento do modelo com melhores parâmetros.
SMOTE (Synthetic Minority Over-sampling Technique)
No mundo da ciência de dados e aprendizado de máquina, o desequilíbrio de classes em conjuntos de dados é um desafio comum, especialmente em cenários de classificação. O SMOTE (Synthetic Minority Over-sampling Technique) emergiu como uma técnica inovadora para abordar esse problema, ajudando a melhorar a precisão e eficácia dos modelos preditivos.
O desequilíbrio de classes ocorre quando as observações em diferentes classes não estão igualmente representadas. Por exemplo, em um conjunto de dados de detecção de fraude, as transações fraudulentas são muito menos comuns do que as transações legítimas. Esse desequilíbrio pode levar a modelos que favorecem a classe majoritária, resultando em uma identificação inadequada da classe minoritária.
SMOTE é uma técnica de processamento de dados usada para equilibrar conjuntos de dados desbalanceados através do aumento do número de exemplos na classe minoritária. Diferentemente do simples oversampling, que apenas replica exemplos existentes, o SMOTE cria exemplos sintéticos.
O processo do SMOTE envolve a seleção aleatória de um ponto da classe minoritária e a identificação de seus vizinhos mais próximos no conjunto de dados. Em seguida, ele gera novos exemplos sintéticos que são combinações lineares desses pontos e seus vizinhos. Isso ajuda a introduzir mais variedade dentro da classe minoritária, evitando o overfitting comum no oversampling tradicional.
SMOTE é particularmente útil em áreas como detecção de fraude, diagnóstico médico, e reconhecimento de padrões, onde a classe de interesse é significativamente menos representada.
Benefícios: O SMOTE melhora a representação da classe minoritária, contribuindo para modelos mais equilibrados e precisos.
Limitações: Pode gerar exemplos sintéticos que não representam bem a realidade se os dados originais já estiverem muito desequilibrados ou se tiverem muitos outliers.
5 - Avaliação do Modelo
Warning
É importante destacar que nem todas as métricas empregadas nesta análise são as mais apropriadas para contextos onde a variável dependente é desbalanceada. Estas métricas foram selecionadas principalmente com o objetivo de aprendizado, e cada uma delas merece uma exploração mais detalhada e até postagens separadas.
Métricas de Avaliação:
- Acurácia
- F1-Score
- Matriz de Confusão
- ROC-AUC
- Recall
- Precisão
- Log Loss
- Average Precision Score
- Curva ROC
- Curva Precision-Recall
Outras métricas para valiação de modelos de classificação
Kappa de Cohen (Cohen's Kappa);
F-Score Balanceado;
Matthews Correlation Coefficient (MCC);
Taxa de Falsos Positivos (False Positive Rate);
Taxa de Falsos Negativos (False Negative Rate);
6 - Salvamento e Carregamento de Modelos
Funções para salvar e carregar modelos usando a biblioteca pickle.