Regressione logistica del kernel vs SVM


32

Come è noto a tutti, SVM può usare il metodo kernel per proiettare punti dati in spazi più alti in modo che i punti possano essere separati da uno spazio lineare. Ma possiamo anche usare la regressione logistica per scegliere questo limite nello spazio del kernel, quindi quali sono i vantaggi di SVM? Poiché SVM utilizza un modello sparso in cui solo quei vettori di supporto forniscono contributi durante la previsione, ciò rende SVM più veloce nella previsione?


1
Le diapositive di Hastie sono ciò che stai cercando
Yibo Yang del

Risposte:


28

KLR e SVM

  1. Le prestazioni di classificazione sono quasi identiche in entrambi i casi.
  2. KLR può fornire probabilità di classe mentre SVM è un classificatore deterministico.
  3. KLR ha una naturale estensione alla classificazione multi-classe mentre in SVM ci sono molti modi per estenderla alla classificazione multi-classe (ed è ancora un'area di ricerca se esiste una versione che ha qualità notevolmente superiori rispetto alle altre).
  4. Sorprendentemente o non sorprendentemente, KLR ha anche proprietà di margine ottimali di cui godono gli SVM (almeno nel limite)!

Guardando quanto sopra sembra quasi che la regressione logistica del kernel sia ciò che dovresti usare. Tuttavia, ci sono alcuni vantaggi di cui godono gli SVM

  1. O(N3)O(N2K)K
  2. Il classificatore in SVM è progettato in modo tale da essere definito solo in termini di vettori di supporto, mentre in KLR il classificatore è definito su tutti i punti e non solo sui vettori di supporto. Ciò consente alle SVM di godere di alcune accelerazioni naturali (in termini di scrittura efficiente del codice) che è difficile da ottenere per KLR.

7
+1 Aggiungerei solo che se la complessità computazionale è un problema, non è troppo difficile costruire un modello di regressione logistica del kernel scarso scegliendo avidamente i vettori di base per ridurre al minimo la perdita regolarizzata sul set di addestramento o altri approcci. Vedi i documenti sulla "Macchina informativa vettoriale" per esempio.
Dikran Marsupial,

4
Inoltre, abbastanza spesso se si ottimizzano i parametri del kernel e della regolarizzazione di un SVM si finisce con un modello in cui praticamente tutti i dati sono vettori di supporto. La scarsità di SVM è un felice incidente, non è davvero un buon punto di forza della tecnica in quanto è generalmente possibile ottenere una maggiore scarsità con altri mezzi.
Dikran Marsupial,

1
@DikranMarsupial Grazie per il puntatore a Informative Vector Machine. Conosco alcuni lavori in Sparse KLR, ma finora non credo che nessuno di essi sia adatto per grandi set di dati. In ogni caso, rilasciare una buona implementazione di KLR sparsa che sia user-friendly come libSVM o SVM Light può fare molto per la sua adozione. Ci scusiamo se tali implementazioni esistono già, ma non ne sono a conoscenza. (EDIT: Penso che volevi dire "Import vector machine" anziché "Informative vector machine"?)
TenaliRaman

2
Se stai finendo con tutti i punti dati come vettori di supporto, allora ti stai adattando troppo. Questo succede con RBF molte volte. In effetti, una delle cose fondamentali che ho imparato come utente di SVM è innanzitutto verificare la frazione di punti scelti come vettori di supporto. Se si tratta di qualcosa di più del 30% dei dati, rifiuto totalmente quel modello.
TenaliRaman,

3
Non è corretto che tutti i punti dati essendo SV significano un eccesso di adattamento. Se il valore di C è piccolo, allora c'è poca penalità sulle variabili lente quindi puoi avere un classificatore insipido (che fa molti errori sul set di addestramento) e il margine è così ampio che tutti i dati sono vettori di supporto. Il rifiuto di modelli non sparsi non è una buona regola empirica in quanto a volte l'SVM con le migliori prestazioni di generalizzazione non è scarso. Il numero di SV è un limite superiore dell'errore di esclusione, ma spesso è davvero un limite molto perso!
Dikran Marsupial,

15

Ecco la mia opinione sul problema:

Le SVM sono un modo molto elegante per fare la classificazione. C'è una bella teoria, qualche bella matematica, si generalizzano bene e non sono nemmeno troppo lenti. Prova a usarli per la regressione, e diventa disordinato.

  • Ecco una risorsa sulla regressione SVM. Notare i parametri extra da modificare e la discussione approfondita sugli algoritmi di ottimizzazione.

La regressione del processo gaussiana ha molta della stessa matematica kernelly e funziona benissimo per la regressione. Ancora una volta, è molto elegante e non è troppo lento. Cerca di usarli per la classificazione, e inizia a sembrare piuttosto clandestino.

  • Ecco un capitolo del libro GP sulla regressione.

  • Ecco un capitolo sulla classificazione, per confronto. Si noti che si finisce con alcune approssimazioni complicate o un metodo iterativo.

Una cosa bella dell'utilizzo dei GP per la classificazione, tuttavia, è che ti dà una distribuzione predittiva, piuttosto che una semplice classificazione sì / no.


2
I GP di +1 sono una buona alternativa a KLR (sebbene KLR spesso offra prestazioni migliori perché la selezione del modello basata sull'evidenza può sbagliare abbastanza facilmente se c'è una specifica errata del modello) e spesso è preferibile la convalida incrociata.
Dikran Marsupial,

7

visitare http://www.stanford.edu/~hastie/Papers/svmtalk.pdf

Alcune conclusioni: le prestazioni di classificazione sono molto simili. Ha proprietà di margine ottimali limitanti. Fornisce stime delle probabilità della classe. Spesso sono più utili delle classificazioni. Generalizza naturalmente alla classificazione di classe M attraverso la regressione multi-logit del kernel.

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.