¿Un conjunto de entrenamiento escaso afecta negativamente a un SVM?

12

Estoy tratando de clasificar los mensajes en diferentes categorías usando un SVM. He compilado una lista de palabras / símbolos deseables del conjunto de entrenamiento.

Para cada vector, que representa un mensaje, configuro la fila correspondiente a 1si la palabra está presente:

"corpus" es: [Mary, little, lamb, star, twinkle]

primer mensaje: "María tenía un corderito" -> [1 1 1 0 0]

segundo mensaje: "pequeña estrella centelleante" -> [0 1 0 1 1]

Creo que esta es una configuración bastante común con SVM, pero mi pregunta es, con miles de palabras en el conjunto, ¿qué pasa si solo aparecen 1-2 palabras por mensaje? ¿La dependencia lineal de mi conjunto de vectores de entrenamiento afectará negativamente la capacidad de convergencia del algoritmo?

jonsca
fuente
1
¿Tiene muchos datos, pero pocos datos etiquetados? Si es así, es posible que desee estudiar el aprendizaje semi-supervisado. El uso de algunos de sus datos sin etiquetar debería aumentar su precisión y disminuir el riesgo de sobreajuste.
neurona
@neuron Había pensado en hacer eso. ¿Cuál es un ejemplo de una arquitectura semi-supervisada?
jonsca
1
Solo he usado métodos "semi-supervisados" de semi-supervisados ​​(también conocido como modelo de entrenamiento en el conjunto de entrenamiento, usar el modelo para predecir datos, extraer todos los datos con una probabilidad de predicción de> 0.5 y fusionar con el conjunto de entrenamiento, y crear moel en el nuevo conjunto de entrenamiento). Pero he visto flexmix mencionar algunos lugares (ver cran.r-project.org/web/packages/flexmix )
neurona
@neuron De acuerdo, bien, porque los artículos que vi (aunque con una búsqueda rápida similar a la wikipedia) no eran muy específicos sobre arquitecturas. Lo comprobaré, sin flexmixembargo, ¡he tenido "Learn R" en mi calendario durante un par de años ahora!
jonsca
Hazlo, R es INCREÍBLE, las bibliotecas que están disponibles para ti son alucinantes. Cosas como caret, sqldf / rmysql, foreach (paralelo para), ggplot2 y googlevis son herramientas increíblemente útiles. Al principio no era fanático del lenguaje, pero ha crecido en mí y me encanta usarlo ahora.
neurona

Respuestas:

9

La escasez y la dependencia lineal son dos cosas diferentes. La dependencia lineal implica que algunos de los vectores de características son simples múltiplos de otros vectores de características (o lo mismo se aplica a los ejemplos). En la configuración que ha descrito, creo que la dependencia lineal es poco probable (implica que dos términos tienen la misma frecuencia (o múltiplos de la misma) en todos los documentos). Simplemente tener características dispersas no presenta ningún problema para el SVM. Una forma de ver esto es que podría hacer una rotación aleatoria de los ejes de coordenadas, lo que dejaría el problema sin cambios y daría la misma solución, pero haría que los datos no fueran escasos (esto es en parte cómo funcionan las proyecciones aleatorias )

También parece que estás hablando del SVM en el primario . Tenga en cuenta que si utiliza el SVM del núcleo, el hecho de que tenga un conjunto de datos disperso no significa que la matriz del núcleo sea dispersa. Sin embargo, puede ser de bajo rango. En ese caso, puede aprovechar este hecho para obtener un entrenamiento más eficiente (ver, por ejemplo, entrenamiento svm eficiente usando representaciones de kernel de bajo rango ).

tdc
fuente
1
Es cierto, fui un poco rápido y suelto con mi terminología. Tiene sentido.
jonsca