2012-02-21 13 views

Respuesta

15

La "variable slack" es C en c-svm y nu en nu-SVM. Ambos cumplen la misma función en sus respectivas formulaciones, controlando la compensación entre un margen amplio y un error clasificador. En el caso de C, generalmente se prueba en órdenes de magnitud, digamos 10^-4, 10^-3, 10^-2, ... a 1, 5 o más. nu es un número entre 0 y 1, generalmente de .1 a .8, que controla la proporción de vectores de soporte a puntos de datos. Cuando nu es .1, el margen es pequeño, el número de vectores de soporte será un pequeño porcentaje del número de puntos de datos. Cuando nu es .8, el margen es muy grande y la mayoría de los puntos caerán en el margen.

Las otras cosas a considerar son su elección de kernel (lineal, RBF, sigmoide, polinomio) y los parámetros para el kernel elegido. En general, uno tiene que experimentar mucho para encontrar la mejor combinación de parámetros. Sin embargo, tenga cuidado de ajustar demasiado a su conjunto de datos.

Burges escribió un gran tutorial: A Tutorial on Support Vector Machines for Pattern Recognition

Pero si en su mayoría sólo quiere saber cómo usarlo y menos acerca de cómo funciona, leer "A Practical Guide to Support Vector Classication" by Chih-Wei Hsu, Chih-Chung Chang, and Chih-Jen Lin (autores de libsvm)

1

Primero decida qué tipo de SVM pretenden usar: C-SVC, nu-SVC, epsilon-SVR o nu-SVR. En mi opinión, necesitas variar C y gamma la mayor parte del tiempo ... el resto suele estar fijo ..

+0

estoy usando C-SVC – Hossein

+0

mira las opciones proporcionadas en el enlace de tu pregunta ... también hay un ejemplo ... ej. -s 0 -c 10 -t 1 -g 1 -r 1 -d 3 – lakesh

+0

además de eso, también has leído la carpeta README proporcionada ... es muy elaborada y está bien escrita ... – lakesh

Cuestiones relacionadas