Risposte:
La ricerca della griglia è lenta in quanto impiega molto tempo a studiare le impostazioni di iperparametri che non sono quasi ottimali. Una soluzione migliore è l' algoritmo simplex Nelder-Mead , che non richiede il calcolo delle informazioni sul gradiente ed è semplice da implementare (dovrebbero esserci abbastanza informazioni sulla pagina di Wikipedia). Potrebbe esserci anche del codice java nella casella degli strumenti di Weka , tuttavia lavoro in MATLAB e non ho esaminato Weka in alcun dettaglio.
SMO è un algoritmo per trovare i parametri del modello, piuttosto che gli iperparametri.
Il metodo simplex Nelder-Mead può comportare tutte le valutazioni delle funzioni di una semplice ricerca della griglia. Di solito la superficie dell'errore è abbastanza liscia vicino ai valori dei parametri ottimali che una ricerca di griglia grossolana seguita da una ricerca più fine in una regione più piccola dovrebbe essere sufficiente.
Se sei interessato all'ottimizzazione basata su gradiente di C e gamma, esistono metodi come l'ottimizzazione dei limiti del margine del raggio o l'ottimizzazione del tasso di errore in un set di convalida. Il calcolo del gradiente della funzione obiettivo implica qualcosa come un treno SVM, ma una semplice discesa del gradiente può comportare solo poche decine di iterazioni. (Guarda http://olivier.chapelle.cc/ams/ per un articolo e un'implementazione di Matlab.)
Ecco una voce nel blog di Alex Smola relativa alla tua domanda
Ecco una citazione:
[...] scegli, diciamo 1000 coppie (x, x ') a caso dal tuo set di dati, calcola la distanza di tutte queste coppie e prendi la mediana, lo 0,1 e lo 0,9 quantile. Ora scegli λ come inverso uno di questi tre numeri. Con un po 'di crossvalidation scoprirai quale dei tre è il migliore. Nella maggior parte dei casi non sarà necessario effettuare ulteriori ricerche.