Quale intervallo di ricerca per determinare i parametri C e gamma ottimali SVM?


32

Sto usando SVM per la classificazione e sto cercando di determinare i parametri ottimali per i kernel lineari e RBF. Per il kernel lineare utilizzo la selezione dei parametri convalidata per determinare C e per il kernel RBF utilizzo la ricerca della griglia per determinare C e gamma.

Ho 20 funzioni (numeriche) e 70 esempi di allenamento che dovrebbero essere classificati in 7 classi.

Quale intervallo di ricerca dovrei usare per determinare i valori ottimali per i parametri C e gamma?

Risposte:


31

Dai un'occhiata a una guida pratica alla classificazione SVM per alcuni puntatori, in particolare pagina 5.

Raccomandiamo una "ricerca in griglia" su e usando la validazione incrociata. Vengono provate varie coppie di valori e viene scelta quella con la migliore precisione di convalida incrociata. Abbiamo scoperto che provare sequenze in crescita esponenziale di e è un metodo pratico per identificare buoni parametri (ad esempio, ).Cγ(C,γ)CγC=25,23,,215;γ=215,213,,23

Ricorda di normalizzare prima i tuoi dati e, se puoi, raccogli più dati perché dal loro aspetto, il tuo problema potrebbe essere fortemente sottodeterminato.


Il test tra pari deve essere eseguito manualmente? non c'è una biblioteca per raggiungerlo?
x-rw,

11

Consulta la sezione 2.3.2 di questo documento di Chapelle e Zien. Hanno una buona euristica per selezionare un buon intervallo di ricerca per del kernel RBF e per SVM. quotoσC

Per determinare i buoni valori dei restanti parametri liberi (ad es. Per CV), è importante cercare sulla scala giusta. Pertanto fissiamo i valori predefiniti per e che hanno il giusto ordine di grandezza. In un problema di classe usiamo il quantile delle distanze a coppie di tutti i punti dati come predefinito per . L'impostazione predefinita per è l'inversione della varianza empirica nello spazio delle caratteristiche, che può essere calcolata da da un kernel matrice .Cσc1/cDijρσCs2s2=1niKii1n2i,jKijn×nK

Successivamente, usano multipli (ad es. per ) del valore predefinito come intervallo di ricerca in una ricerca della griglia usando la convalida incrociata. Ha sempre funzionato molto bene per me.2kk{2,...,2}

Certo, abbiamo detto @ciri, normalizzare i dati ecc. È sempre una buona idea.


Penso che ci siano diverse formulazioni uguali del kernel rbf. Uno con gamma e un altro con sigma, ovvero gamma = 1 / 2sigma ^ 2. La gamma nella euristica sopra corrisponde a gamma, sigma o sigma ^ 2? Ho trovato altre descrizioni dello stesso euristico che sono per gamma.
macchinario

Se controlli il documento collegato, è12σ2
fabee

@fabee I test tra pari devono essere eseguiti manualmente? non c'è una biblioteca per raggiungerlo?
x-rw,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.