Junior — Middle
O que é o desequilíbrio de classes e como combatê-lo?
sobes.tech IA
Resposta da IA
O desequilíbrio de classes é uma situação em um problema de classificação em que a quantidade de objetos de uma classe excede significativamente a quantidade de objetos de outra (ou outras) classes. Isso leva a que o modelo possa reconhecer mal as classes menos representadas, pois tende a se otimizar para a maioria.
Formas de combater o desequilíbrio de classes:
- Reamostragem: aumentar o número de objetos da classe menor (sobreamostragem) ou reduzir o número de objetos da classe maior (subamostragem).
- Uso de métricas especiais: por exemplo, F1-score, ROC-AUC em vez de precisão simples.
- Aplicação de algoritmos resistentes ao desequilíbrio: por exemplo, ensemble, métodos com ponderação de classes.
- Geração de dados sintéticos: métodos como SMOTE criam novos objetos para a classe menor.
Exemplo de uso do SMOTE:
from imblearn.over_sampling import SMOTE
X_resampled, y_resampled = SMOTE().fit_resample(X, y)
Isso ajuda a melhorar a qualidade do modelo em classes raras.