Quali tipi di problemi di apprendimento sono adatti per Support Vector Machines?


16

Quali sono i tratti distintivi o le proprietà che indicano che un certo problema di apprendimento può essere affrontato utilizzando macchine vettoriali di supporto?

In altre parole, cos'è che, quando vedi un problema di apprendimento, ti fa andare "oh dovrei assolutamente usare SVM per questo" 'piuttosto che reti neurali o alberi decisionali o qualsiasi altra cosa?


Rimosso il supervised learningtag, poiché gli SVM possono essere utilizzati anche in problemi di apprendimento senza supervisione .
Dawny33

Può spiegare come svm può essere usato per problemi senza supervisione e quale pacchetto lo implementa?
GeorgeOfTheRF,

@ML_Pro Per favore passa attraverso il link che ho incluso nel mio commento.
Dawny33

3
@ Dawny33, l'applicazione delle SVM all'apprendimento non supervisionato è l'eccezione e non la regola. Le SVM sono un metodo di apprendimento supervisionato.
AN6U5,

1
@ AN6U5 Grazie per aver informato :) exceptionIntendi dire che è solo una modifica e non la convenzione, giusto?
Dawny33

Risposte:


7

SVM può essere utilizzato per la classificazione (distinguendo tra più gruppi o classi) e la regressione (ottenendo un modello matematico per prevedere qualcosa). Possono essere applicati a problemi sia lineari che non lineari.

Fino al 2006 erano il miglior algoritmo per scopi generali per l'apprendimento automatico. Stavo cercando di trovare un documento che mettesse a confronto molte implementazioni degli algoritmi più noti: svm, reti neurali, alberi, ecc. Non riuscivo a trovarmi dispiaciuto (dovrai credermi, cosa cattiva). Nell'articolo l'algoritmo che ha ottenuto le migliori prestazioni era svm, con la libreria libsvm.

Nel 2006 Hinton ha realizzato l'apprendimento profondo e le reti neurali. Ha migliorato l'attuale stato dell'arte di almeno il 30%, il che rappresenta un enorme progresso. Tuttavia, l'apprendimento profondo ottiene buone prestazioni solo per enormi set di allenamento. Se hai un piccolo set di allenamento ti suggerirei di usare svm.

Inoltre puoi trovare qui un'utile infografica su quando utilizzare diversi algoritmi di apprendimento automatico di scikit-learn. Tuttavia, per quanto ne so, la comunità scientifica non è d'accordo sul fatto che un problema abbia funzioni X, Y e Z, quindi è meglio usare svm. Suggerirei di provare metodi diversi. Inoltre, non dimenticare che svm o reti neurali sono solo un metodo per calcolare un modello. È molto importante anche le funzionalità che usi.


1
@HoapHumaboid So di SVC e SVR e che possiamo usare Kernels per applicare SVM ai PNL e sono a conoscenza di articoli che confrontano SVM con altri algoritmi di apprendimento ... Mi chiedevo quali fossero le caratteristiche di un potenziale problema di apprendimento che avrebbe creato è evidente che dovrebbe essere affrontato con un SVM. In altre parole, cos'è che quando vedi un problema di apprendimento ti fa andare "oh dovrei sicuramente usare SVM per questo '' piuttosto che NN o alberi decisionali o qualsiasi altra cosa
Ragnar,

@Ragnar, per favore, vedi la mia risposta modificata
hoaphumanoid,

2

Supponiamo che ci troviamo in un'impostazione di classificazione.

Per l' svmingegneria delle caratteristiche è fondamentale:

  • i set devono essere linearmente separabili. Altrimenti i dati devono essere trasformati (ad es. Usando i kernel). Questo non è fatto dall'ego stesso e potrebbe far saltare il numero di funzionalità.
  • Direi che le svmprestazioni ne risentono quando aumentiamo il numero di dimensioni più velocemente di altre metodologie (insieme di alberi). Ciò è dovuto al problema di ottimizzazione vincolata che supporta svms. A volte la riduzione delle funzionalità è fattibile, a volte no e questo è quando non possiamo davvero aprire la strada per un uso efficace disvm
  • svmsarà probabilmente in difficoltà con un set di dati in cui il numero di funzionalità è molto più grande del numero di osservazioni. Questo, ancora una volta, può essere compreso osservando il problema di ottimizzazione vincolato.
  • le variabili categoriche non sono gestite fuori dagli schemi svmdall'algoritmo.
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.