Quando si utilizza SVM, è necessario selezionare un kernel.
Mi chiedo come selezionare un kernel. Qualche criterio sulla selezione del kernel?
Quando si utilizza SVM, è necessario selezionare un kernel.
Mi chiedo come selezionare un kernel. Qualche criterio sulla selezione del kernel?
Risposte:
Il kernel è effettivamente una misura di somiglianza, quindi è una buona idea scegliere un kernel in base alla conoscenza precedente delle invarianze come suggerito da Robin (+1).
In assenza di conoscenze specialistiche, il kernel della funzione di base radiale crea un buon kernel predefinito (una volta stabilito che si tratta di un problema che richiede un modello non lineare).
La scelta dei parametri del kernel e del kernel / regolarizzazione può essere automatizzata ottimizzando una selezione del modello basata sulla valdiazione incrociata (o usando i margini di raggio o span). La cosa più semplice da fare è minimizzare un criterio di selezione del modello continuo usando il metodo simplex Nelder-Mead, che non richiede il calcolo del gradiente e funziona bene con numeri sensibili di iperparametri. Se hai più di alcuni iperparametri da mettere a punto, è probabile che la selezione automatica del modello provochi un eccessivo adattamento, a causa della varianza del criterio di selezione del modello. È possibile utilizzare l'ottimizzazione basata sul gradiente, ma il guadagno prestazionale di solito non vale lo sforzo di codificarlo).
La scelta automatizzata di kernel e parametri kernel / regolarizzazione è un problema complicato, in quanto è molto facile sovrautilizzare il criterio di selezione del modello (in genere basato sulla convalida incrociata) e puoi finire con un modello peggiore di quello che hai iniziato. La selezione automatica del modello può anche influenzare la valutazione delle prestazioni, quindi assicurati che la tua valutazione delle prestazioni valuti l'intero processo di adattamento del modello (formazione e selezione del modello), per i dettagli, vedi
GC Cawley e NLC Talbot, Prevenire un eccesso di adattamento nella selezione del modello tramite regolarizzazione bayesiana degli iperparametri, Journal of Machine Learning Research, volume 8, pagine 841-861, aprile 2007. (pdf)
e
GC Cawley e NLC Talbot, Over-fitting nella selezione dei modelli e conseguente bias nella selezione delle prestazioni, Journal of Machine Learning Research, vol. 11, pp. 2079-2107, luglio 2010. (pdf)
Se non sei sicuro di quale sarebbe la soluzione migliore, puoi utilizzare tecniche di selezione automatiche (ad es. Validazione incrociata, ...). In questo caso puoi anche usare una combinazione di classificatori (se il tuo problema è la classificazione) ottenuti con kernel diversi.
Tuttavia , il "vantaggio" di lavorare con un kernel è che si modifica la solita geometria "euclidea" in modo che si adatti al proprio problema. Inoltre, dovresti davvero cercare di capire qual è l'interesse di un kernel per il tuo problema, cosa è particolare della geometria del tuo problema . Questo può includere:
Ho sempre la sensazione che qualsiasi selezione di iperparametri per SVM venga effettuata tramite validazione incrociata in combinazione con la ricerca della griglia.
In generale, il kernel RBF è una prima scelta ragionevole. Inoltre, il kernel lineare è un caso speciale di RBF, in particolare, quando il numero di funzionalità è molto elevato, si può semplicemente usare il kernel lineare.