Sobes.tech
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.