Junior — Middle
¿Qué es el desequilibrio de clases y cómo combatirlo?
sobes.tech AI
Respuesta de la IA
El desequilibrio de clases es una situación en un problema de clasificación en la que la cantidad de objetos de una clase supera significativamente a la cantidad de objetos de otra (u otras) clases. Esto lleva a que el modelo pueda reconocer mal las clases menos representadas, ya que tiende a optimizarse para la mayoría.
Formas de combatir el desequilibrio de clases:
- Re-muestreo: aumentar el número de objetos de la clase menor (sobremuestreo) o reducir el número de objetos de la clase mayor (submuestreo).
- Uso de métricas especiales: por ejemplo, F1-score, ROC-AUC en lugar de precisión simple.
- Aplicación de algoritmos resistentes al desequilibrio: por ejemplo, ensamblajes, métodos con ponderación de clases.
- Generación de datos sintéticos: métodos como SMOTE crean nuevos objetos para la clase menor.
Ejemplo de uso de SMOTE:
from imblearn.over_sampling import SMOTE
X_resampled, y_resampled = SMOTE().fit_resample(X, y)
Esto ayuda a mejorar la calidad del modelo en clases raras.