Processing math: 100%

194 votos

¿Cuál es la influencia de C en las SVM con núcleo lineal?

Actualmente estoy utilizando una SVM con un núcleo lineal para clasificar mis datos. No hay ningún error en el conjunto de entrenamiento. He probado varios valores para el parámetro C ( 105,,102 ). Esto no cambió el error en el conjunto de pruebas.

Ahora me me pregunto: ¿es un error causada por las fijaciones de rubí para libsvm Estoy usando ( rb-libsvm ) o se trata de teóricamente explicable ?

En caso de que el parámetro C ¿se modifica siempre el rendimiento del clasificador?

0 votos

Sólo un comentario, no una respuesta: Cualquier programa que minimiza una suma de dos términos, como |w|2+Cξi, debería (en mi opinión) decirte cuáles son los dos términos al final, para que puedas ver cómo se equilibran. (Si necesita ayuda para calcular usted mismo los dos términos de la SVM, intente hacer una pregunta aparte. ¿Ha mirado algunos de los puntos peor clasificados? ¿Podría publicar un problema similar al suyo?)

6voto

user133311 Puntos 56

Las respuestas anteriores son excelentes. Después de leer detenidamente sus preguntas, he descubierto que hay 2 hechos importantes que podríamos pasar por alto.

  1. Está utilizando un núcleo lineal
  2. Sus datos de entrenamiento son linealmente separables, ya que "No hay error en el conjunto de entrenamiento".

Dados los 2 hechos, si los valores de C cambian dentro de un rango razonable, el hiperplano óptimo sólo se desplazará aleatoriamente por una pequeña cantidad dentro del margen (la brecha formada por los vectores de soporte).

Intuitivamente, supongamos que el margen de los datos de entrenamiento es pequeño, y/o que no hay puntos de datos de prueba dentro del margen también, el desplazamiento del hiperplano óptimo dentro del margen no afectará al error de clasificación del conjunto de pruebas.

No obstante, si establece C=0, la SVM ignorará los errores y sólo tratará de minimizar la suma de los cuadrados de los pesos (w), tal vez obtenga resultados diferentes en el conjunto de pruebas.

3voto

H. Irshad Puntos 31

El parámetro C se utiliza para controlar los valores atípicos: un valor bajo de C implica que estamos permitiendo más valores atípicos, un valor alto de C implica que estamos permitiendo menos valores atípicos.

1voto

Amit Dhall Puntos 231

Un C (coste) alto significa que el coste de la clasificación errónea aumenta. Esto significa que un kernel flexible se volverá más cuadriculado para evitar la clasificación errónea de las observaciones en el conjunto de entrenamiento.

Si el núcleo es para squiggly el modelo no se generalizará bien al predecir sobre nuevos datos.

Si el núcleo es para recta el modelo no se generalizará bien al predecir sobre nuevos datos.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X