¿SVM maneja el conjunto de datos desequilibrado? ¿Hay algún parámetro (como C o costo de clasificación errónea) que maneja el conjunto de datos desequilibrado?
¿SVM maneja el conjunto de datos desequilibrado? ¿Hay algún parámetro (como C o costo de clasificación errónea) que maneja el conjunto de datos desequilibrado?
Respuestas:
Para conjuntos de datos desequilibrados, generalmente cambiamos la penalización de clasificación errónea por clase. Esto se llama SVM ponderado por clase, que minimiza lo siguiente:
donde y N representan las instancias de entrenamiento positivas / negativas. En SVM estándar solo tenemos un valor de C único , mientras que ahora tenemos 2. La penalización de clasificación errónea para la clase minoritaria se elige para ser mayor que la de la clase mayoritaria.
Este enfoque se introdujo bastante temprano, se menciona, por ejemplo, en un documento de 1997:
Edgar Osuna, Robert Freund y Federico Girosi. Máquinas de vectores de soporte: formación y aplicaciones. Informe técnico AIM-1602, 1997. ( pdf )
Esencialmente, esto es equivalente a sobremuestrear la clase minoritaria: por ejemplo, si esto es completamente equivalente a entrenar un SVM estándar con C = C n e después de incluir cada positivo dos veces en el conjunto de entrenamiento.
Los SVM pueden manejar conjuntos de datos con frecuencias de clase desequilibradas. Muchas implementaciones le permiten tener un valor diferente para la penalización de holgura (C) para las clases positivas y negativas (que es asintóticamente equivalente a cambiar las frecuencias de clase). Recomendaría establecer los valores de estos parámetros para maximizar el rendimiento de generalización en un conjunto de prueba donde las frecuencias de clase son las que espera ver en el uso operativo.
Fui una de las muchas personas que escribieron artículos sobre esto, aquí está el mío , veré si puedo encontrar algo más reciente / mejor. Pruebe Veropoulos, Campbell y Cristianini (1999).