¿Support Vector Machine maneja un conjunto de datos desequilibrado?

14

¿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?

RockTheStar
fuente
1
¿Qué hace que un conjunto de datos esté "desequilibrado"?
whuber
1
@whuber un conjunto de datos de clasificación con una prevalencia de clase muy variable a menudo se denomina desequilibrado.
Marc Claesen
1
@Marc Eso puede ser cierto en general, pero es un concepto vago. ¿Cuánto es "muy variable"? ¿Por qué debería importar, excepto en ciertas circunstancias especiales? Creo que es importante para nosotros aprender lo que el proponente de esta pregunta quiere decir "desequilibrado" en lugar de aceptar las suposiciones inteligentes de alguien con respecto al significado deseado.
whuber
Los conjuntos de datos desequilibrados de @whuber son un concepto común en el aprendizaje automático. En términos de aplicaciones debido, por ejemplo, a la detección de spam, etc. Quizás por la preponderancia de algoritmos que apuntan a errores de clasificación errónea en lugar de probabilidad. Esto a su vez hace que la ponderación del error sea problemática.
seanv507
2
Gracias, @seanv, por la aclaración. El problema terminológico realmente parece ser que "maneja" no se refiere a "se puede aplicar", sino que implica un entorno en el que (1) hay una clase que es tan minoritaria que su rendimiento de predicción podría verse muy afectado por la presencia de las otras clases, mientras que (2) la predicción precisa para la clase minoritaria es de interés. En ese sentido, el "conjunto de datos desequilibrados" es una descripción bastante incompleta del problema, pero dado que el término parece haber adquirido cierta moneda, parece inútil quejarse.
whuber

Respuestas:

18

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:

minw,b,ξi=1Nj=1Nαiαjyiyjκ(xi,xj)+CposiPξi+CnegiNξi,s.t.yi(j=1Nαjyjκ(xi,xj)+b)1ξi,i=1Nξi0,i=1N

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

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 eCpos=2Cneg después de incluir cada positivo dos veces en el conjunto de entrenamiento.C=Cneg

Marc Claesen
fuente
¡Genial, gracias! Además de eso, ¿la regresión logística, el navie bayes y el árbol de decisiones manejan este problema de desequilibrio?
RockTheStar
La regresión logística ciertamente lo hace, solo pondera la probabilidad de patrones positivos y patrones negativos de manera diferente.
Dikran Marsupial
La regresión logística y SVM proporcionan formas intrínsecas. No sé de memoria todos estos otros métodos, pero el sobremuestreo de la clase minoritaria funciona para casi todos los métodos (aunque no es exactamente matemáticamente elegante).
Marc Claesen
1
Genial, gracias @Dikran. Marc: sí, el sobremuestreo simple funciona en general. Sin embargo, esto depende de la situación. Lo que sucede es que está agregando "pesos" a los datos de la minoría cuando está sobremuestreando la minoría (replicando puntos de la minoría una y otra vez en las mismas ubicaciones). Esto esencialmente ayuda a mejorar la "consideración" del ejemplo minoritario. Sin embargo, el límite de decisión de la clasificación se volverá bastante tenso (no lo suficientemente general), es decir, puede ocurrir un sobreajuste). Por lo tanto, es posible que tengamos que considerar algunas técnicas de muestreo probablístico, como SMOTE.
RockTheStar
10

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

Dikran Marsupial
fuente
Dikran, ¿por qué es solo asintóticamente equivalente ... seguramente es exactamente equivalente a ponderar los diferentes errores de clase de manera diferente?
seanv507
Es exactamente equivalente a ponderar los errores de clase, pero eso no es lo mismo que volver a muestrear los datos (para empezar, los pesos son continuamente variables, pero los datos son discretos). Es uno de los resultados de expectativas asintóticas (que no parecen particularmente útiles en la mayoría de las circunstancias).
Dikran Marsupial