2012-03-18 13 views
9

Hola estoy realizando SVM clasificación utilizando SMO, en el que el kernel es RBF, ahora quiero seleccionar c y sigma valores, mediante la búsqueda de la red y la validación cruzada, Soy nuevo al núcleo funciones, por favor ayuda, en el proceso paso a pasoseleccione C y el valor gamma

Respuesta

16
  1. Elige algunos valores para C y sigma que creas que son interesantes. Por ejemplo, C = {1, 10, 100, 1000} y sigma = {.01, .1, 1} (estoy inventando esto).
  2. Divida el conjunto de entrenamiento en k (por ejemplo, 10) piezas, preferiblemente en una forma stratified.
  3. Pasa el cursor sobre todos los pares de valores C y sigma.
    1. Loop over k partes de su conjunto de entrenamiento. Mantenga abierta la parte k. Entrene un clasificador en todas las otras partes combinadas, luego pruebe en la parte extendida.
    2. Mantenga un registro de algunos puntajes (precisión, F1, o lo que sea que desee optimizar).
  4. Devuelve el par de valores con mejor rendimiento para C, sigma por los puntajes que acabas de calcular.
+0

Para aclarar: "Instruye al clasificador en cada una de las otras partes" en general significa entrenarlo en las otras partes combinadas, no cada una individualmente. – Dougal

+0

@Dougal: sí, eso es lo que quise decir. Gracias. –

+0

Creo que vale la pena señalar que a lo que se refiere (dividirse en k partes, etc.) se lo denomina validación cruzada, específicamente validación cruzada de 10 veces. El OP puede no saber eso, a veces la parte más difícil de tratar de encontrar más información es saber qué palabras clave buscar. – karenu

1

sólo voy a añadir un poco de explicación a larsmans' answer.

El parámetro C es un parámetro de regularización/holgura. Sus valores más pequeños obligan a que los pesos sean pequeños. Cuanto más grande se vuelve, el rango permitido de pesos se hace más amplio. Como resultado, los valores mayores de C aumentan la penalización por errores de clasificación y, por lo tanto, reducen la tasa de error de clasificación en los datos de entrenamiento (lo que puede conducir a un ajuste excesivo). Su tiempo de entrenamiento y la cantidad de vectores de soporte aumentarán a medida que aumente el valor de C.

También puede que le resulte útil leer Extending SVM to a Soft Margin Classifier por K. K. Barbilla.

0

También puede utilizar la selección Uniforme Diseño modelo que reduce el número de tuplas que hay que comprobar. El documento que explica que es "La selección del modelo para las máquinas de vectores de soporte a través del diseño uniforme" por Chien-Ming Huang Algunos implementación en Python son existe en ssvm 0.2

Cuestiones relacionadas