Pular para conteúdo

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).

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.