Dato un set di dati arbitrario, in genere non si sa quale kernel potrebbe funzionare meglio. Raccomando di iniziare prima con lo spazio di ipotesi più semplice-dato che non sai molto dei tuoi dati-e fatti strada verso gli spazi di ipotesi più complessi. Quindi, il kernel lineare funziona bene se il tuo set di dati è separabile linearmente; tuttavia, se il tuo set di dati non è separabile linearmente, un kernel lineare non lo taglierà (quasi in senso letterale;)).,
Per semplicità (e per scopi di visualizzazione), supponiamo che il nostro set di dati sia composto da sole 2 dimensioni. Di seguito, ho tracciato le regioni decisionali di un SVM lineare su 2 caratteristiche del set di dati iris:
Funziona perfettamente. Ed ecco che arriva il kernel RBF SVM:
Ora, sembra che sia linear che RBF kernel SVM funzionerebbero ugualmente bene su questo set di dati. Quindi, perché preferire l’ipotesi più semplice e lineare? Pensa al rasoio di Occam in questo caso particolare., SVM lineare è un modello parametrico, un SVM del kernel RBF non lo è e la complessità di quest’ultimo cresce con la dimensione del set di allenamento. Non solo è più costoso addestrare un SVM del kernel RBF, ma è anche necessario mantenere la matrice del kernel in giro, e la proiezione in questo spazio dimensionale “infinito” più alto in cui i dati diventano separabili linearmente è più costosa anche durante la previsione. Inoltre, hai più iperparametri da sintonizzare, quindi anche la selezione del modello è più costosa! E infine, è molto più facile adattarsi eccessivamente a un modello complesso!,
Ok, quello che ho detto sopra sembra tutto molto negativo per quanto riguarda i metodi del kernel, ma in realtà dipende dal set di dati. E. g., se i dati non linearmente separabili, non ha senso usare un classificatore lineare:
In questo caso, un kernel RBF renderebbe molto più senso:
In ogni caso, non vorrei disturbare troppo il kernel polinomiale. In pratica, è meno utile per ragioni di efficienza (computazionale e predittiva)., Quindi, la regola empirica è: utilizzare SVM lineari (o regressione logistica) per problemi lineari e kernel non lineari come il kernel della funzione di base radiale per problemi non lineari.
La regione decisionale SVM del kernel RBF è in realtà anche una regione decisionale lineare., Ciò che RBF kernel SVM in realtà fa è creare combinazioni non lineari delle tue caratteristiche per elevare i tuoi campioni su uno spazio di feature di dimensioni superiori in cui puoi usare un limite di decisione lineare per separare le tue classi:
Ok, sopra, ti ho guidato attraverso un esempio intuitivo in cui possiamo visualizzare i nostri dati in 2 dimensioni … ma cosa facciamo in un problema del mondo reale, cioè un set di dati con più di 2 dimensioni? Qui, vogliamo tenere d’occhio la nostra funzione oggettiva: ridurre al minimo la perdita della cerniera., Vorremmo impostare una ricerca iperparametro (ricerca griglia, per esempio) e confrontare diversi kernel tra loro. Basato sulla funzione di perdita (o una metrica di prestazioni come accuratezza, F1,MCC, ROC auc, ecc.) potremmo determinare quale kernel è “appropriato” per il compito dato.
Bio: Sebastian Raschka è un ‘Data Scientist’ e appassionato di Machine Learning con una grande passione per Python& open source. Autore di ‘Python Machine Learning’. Università Statale del Michigan.
Originale. Ripubblicato con il permesso.,
Related:
- Quando l’apprendimento profondo funziona meglio degli SVM o delle foreste casuali?
- Lo sviluppo della classificazione come macchina di apprendimento
- Perché implementare algoritmi di apprendimento automatico da zero?
Lascia un commento