2013-12-13 16 views
15

Attualmente sto studiando svm e mi chiedevo quale sia l'applicazione di svm`s con il kernel lineare. Secondo me deve essere qualcosa applicato alla soluzione di un problema di ottimizzazione lineare. È corretto?Dove è meglio usare svm con kernel lineare?

Apprezzo la tua risposta!

risposta

21

Un'ultima cosa da aggiungere: lo SVM lineare è meno incline al sovradimensionamento rispetto a quello non lineare. E devi decidere quale kernel scegliere in base alla tua situazione: se il tuo numero di funzionalità è veramente grande rispetto all'esempio di addestramento, usa solo il kernel lineare; se il numero di funzionalità è ridotto, ma il campione di addestramento è ampio, potrebbe essere necessario anche un kernel lineare, ma provare ad aggiungere più funzionalità; se il tuo numero di funzione è piccolo (10^0 - 10^3) e il numero del campione è intermedio (10^1 - 10^4), utilizzare il kernel gaussiano sarà migliore.

Per quanto ne so, SVM con kernel lineare è in genere paragonabile alla regressione logistica.

2

SVM con kernel lineare è in effetti uno dei classificatori più semplici, ma non sarà sorprendente se otteniamo un'accuratezza delle prestazioni molto elevata quando la distribuzione dei dati è linearmente separabile.

In questo senso, penso che la tua opinione sia corretta. Tuttavia, è necessario rendersi conto della potenza di SVM che si trova nell'estensione con kernel non lineari molto più complessi (ad es. RBF).

Un collegamento choosing classifiers.

3

L'applicazione di una macchina vettoriale di supporto con un kernel lineare consiste nell'eseguire la classificazione o la regressione. Funzionerà meglio quando c'è un limite di decisione lineare o un adattamento lineare ai dati, quindi il kernel lineare.

4

Il kernel lineare ha alcuni vantaggi ma probabilmente (a mio parere) il più significativo è il fatto che generalmente è molto più veloce allenarsi rispetto ai kernel non lineari come RBF.

Se la dimensione del set di dati è in termini di gigabyte, si vedrà che la differenza di tempo di allenamento è enorme (minuti contro ore).

4

I kernel lineari possono essere applicati su dati linearmente separabili. Immagina che il tuo set di dati abbia solo 2 funzioni e 2 classi. Se si tracciano i campioni del set di dati in un grafico utilizzando le 2 funzioni come X e Y, sarà possibile vedere come i campioni di classi diverse si posizionano in relazione l'uno con l'altro.

Se è facile tracciare una linea che separa le due classi, quindi un kernel lineare è grande per il lavoro:

enter image description here

Naturalmente questo funziona con molte caratteristiche, non solo due, rendering multi spazi tridimensionali. Tuttavia, se i tuoi dati non sono separabili linearmente, dovrai mappare i tuoi campioni in un altro spazio dimensionale, usando kernel come RBF o polinomiale.

Inoltre, poiché il kernel lineare non esegue alcuna mappatura, è generalmente più veloce addestrare il classificatore rispetto ad altri kernel.

Problemi correlati