Para los conjuntos de datos desequilibrados, solemos cambiar la penalización por clasificación errónea por clase. Esto se llama SVM ponderado por clase, que minimiza lo siguiente:
$$ \begin{align} \min_{\mathbf{w},b,\xi} &\quad \sum_{i=1}^N\sum_{j=1}^N \alpha_i \alpha_j y_i y_j \kappa(\mathbf{x}_i,\mathbf{x}_j) + C_{pos}\sum_{i\in \mathcal{P}} \xi_i + C_{neg}\sum_{i\in \mathcal{N}}\xi_i, \\ s.t. &\quad y_i\big(\sum_{j=1}^N \alpha_j y_j \kappa(\mathbf{x}_i, \mathbf{x}_j) + b\big) \geq 1-\xi_i,& i=1\ldots N \\ &\quad \xi_i \geq 0, & i=1\ldots N \end{align}$$
donde $\mathcal{P}$ y $\mathcal{N}$ representan las instancias de entrenamiento positivas/negativas. En la SVM estándar sólo tenemos una única $C$ mientras que ahora tenemos 2. La penalización por clasificación errónea de la clase minoritaria se elige para que sea mayor que la de la clase mayoritaria.
Este enfoque se introdujo bastante pronto, se menciona por ejemplo en un documento de 1997:
Edgar Osuna, Robert Freund y Federico Girosi. Máquinas de vectores de apoyo: Entrenamiento y aplicaciones. Informe técnico AIM-1602, 1997. ( pdf )
En esencia, esto equivale a un sobremuestreo de la clase minoritaria: por ejemplo, si $C_{pos} = 2 C_{neg}$ esto es totalmente equivalente a entrenar una SVM estándar con $C=C_{neg}$ después de incluir cada positivo dos veces en el conjunto de entrenamiento.
1 votos
¿Qué hace que un conjunto de datos sea "desequilibrado"?
1 votos
@whuber un conjunto de datos de clasificación con una prevalencia de clases muy variable suele denominarse desequilibrado.
1 votos
@Marc Eso puede ser cierto en general, pero es un concepto vago. ¿Cuánto es "ampliamente variable"? ¿Por qué debería importar, salvo en ciertas circunstancias especiales? Creo que es importante que nos enteremos de lo que es el proponente de esta pregunta quiere decir "desequilibrada" en lugar de aceptar la inteligente conjetura de cualquiera sobre el significado previsto.
0 votos
@whuber Los conjuntos de datos desequilibrados 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. Tal vez debido a la preponderancia de los algoritmos que tienen como objetivo el error de clasificación en lugar de la probabilidad. Esto, a su vez, hace que la ponderación del error sea problemática.
2 votos
Gracias, @seanv, por la aclaración. El problema terminológico realmente parece ser que "maneja" no se refiere a "se puede aplicar a", sino que implica un escenario 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) es interesante una predicción precisa para la clase minoritaria. En este sentido, "conjunto de datos desequilibrados" es una descripción bastante incompleta del problema, pero dado que el término parece haber adquirido cierta vigencia, parece inútil quejarse.
0 votos
Perdón por las preguntas poco claras. El término "desequilibrado" significa simplemente que: suponiendo una clasificación binaria, una clase tiene MUCHO más frecuencia que otra. Por ejemplo, tengo una bolsa de 1000 monedas (de 25 y 10 centavos) para entrenar. Quiero entrenar a un robot para que identifique el tipo de moneda por sus características de apariencia. Sin embargo, la bolsa sólo contiene 900 monedas de 25 y 100 de 10. Utilizando un conjunto de datos tan desequilibrado para entrenar una SVM, ¿obtendré una SVM eficiente para predecir si una moneda es de 25 o de 10 centavos?