2012-02-21 12 views

risposta

15

La "variabile di slack" è C in c-svm e nu in nu-SVM. Entrambi hanno la stessa funzione nelle rispettive formulazioni, controllando il compromesso tra un ampio margine e l'errore del classificatore. Nel caso di C, generalmente si verifica in ordine di grandezza, ad esempio 10^-4, 10^-3, 10^-2, ... a 1, 5 o così. nu è un numero compreso tra 0 e 1, generalmente compreso tra 0,1 e 8, che controlla il rapporto tra i vettori di supporto e i punti dati. Quando nu è .1, il margine è piccolo, il numero di vettori di supporto sarà una piccola percentuale del numero di punti dati. Quando nu è .8, il margine è molto grande e la maggior parte dei punti cadrà nel margine.

Le altre cose da considerare sono la scelta del kernel (lineare, RBF, sigmoid, polinomiale) e dei parametri per il kernel scelto. Generalmente si devono fare molti esperimenti per trovare la migliore combinazione di parametri. Tuttavia, fai attenzione a non adattarsi al tuo set di dati.

Burges ha scritto un ottimo tutorial: A Tutorial on Support Vector Machines for Pattern Recognition

Ma se la maggior parte vuole solo sapere come usarlo e meno su come funziona, leggere "A Practical Guide to Support Vector Classication" by Chih-Wei Hsu, Chih-Chung Chang, and Chih-Jen Lin (autori di libsvm)

1

Per prima cosa decidere quale tipo di SVM si intende utilizzare: C-SVC, nu-SVC, epsilon-SVR o nu-SVR. Secondo me è necessario variare C e gamma il più delle volte ... il resto di solito è fisso ..

+0

sto usando C-SVC – Hossein

+0

guarda le opzioni fornite nel link nella tua domanda ... c'è un esempio anche ... eg -s 0 -c 10 -t 1 -g 1 -r 1 -d 3 – lakesh

+0

oltre a questo, leggi anche la cartella README fornita ... è molto elaborata e ben scritta ... – lakesh

Problemi correlati