Quando utilizzare Random Forest su SVM e viceversa?


28

Quando si dovrebbe usare Random Forestoltre SVMe viceversa?

Lo capisco cross-validatione il confronto tra modelli è un aspetto importante nella scelta di un modello, ma qui vorrei saperne di più sulle regole empiriche e sull'euristica dei due metodi.

Qualcuno può spiegare le sottigliezze, i punti di forza e di debolezza dei classificatori, nonché i problemi, che sono più adatti a ciascuno di essi?


1
Il punteggio di precisione è l'unica vera misura della loro prestazione relativa, anche se potrebbe esserci tecnica nota che indica quale tipo di classificatore tra i molti disponibili potrebbe essere migliore sul tuo tipo di dati se sei fortunato. Potresti essere più vincolato da quanto tempo ci vuole per mettere a punto i tuoi parametri, nel qual caso la Foresta Casuale probabilmente si dimostrerà una proposta più facile dei due.
image_doctor

Risposte:


29

Direi che la scelta dipende molto dai dati che hai e dal tuo scopo. Alcune "regole empiriche".

Random Forest è intrinsecamente adatto a problemi multiclasse, mentre SVM è intrinsecamente di due classi. Per problemi multiclasse dovrai ridurlo in più problemi di classificazione binaria.

Random Forest funziona bene con una combinazione di caratteristiche numeriche e categoriche. Quando le funzionalità sono su varie scale, va anche bene. In parole povere, con Random Forest puoi usare i dati così come sono. SVM massimizza il "margine" e quindi si basa sul concetto di "distanza" tra punti diversi. Sta a te decidere se "distanza" è significativa. Di conseguenza, la codifica one-hot per le caratteristiche categoriche è un must. Inoltre, min-max o altro ridimensionamento è altamente raccomandato nella fase di preelaborazione.

nmn×nn2

Per un problema di classificazione Random Forest ti dà probabilità di appartenere alla classe. SVM ti dà la distanza dal confine, devi comunque convertirlo in probabilità in qualche modo se hai bisogno di probabilità.

Per quei problemi, in cui si applica SVM, generalmente si comporta meglio di Random Forest.

SVM ti fornisce "vettori di supporto", ovvero punti di ogni classe più vicini al limite tra le classi. Possono essere di loro interesse per l'interpretazione.


Solo per aggiungere: non è semplice per le foreste casuali darti delle probabilità. O hai bisogno di un'implementazione probabilistica di un albero decisionale o di calibrare il modello Foresta casuale montato in seguito, se vuoi probabilità "vere".
Archie,

5

I modelli SVM hanno prestazioni migliori sui dati sparsi rispetto agli alberi in generale. Ad esempio, nella classificazione dei documenti potresti avere migliaia, persino decine di migliaia di funzioni e in un dato vettore di documenti solo una piccola parte di queste caratteristiche può avere un valore maggiore di zero. Probabilmente ci sono altre differenze tra loro, ma questo è quello che ho trovato per i miei problemi.


3

Dipende molto da ciò che si desidera ottenere, dall'aspetto dei dati e così via. SVM generalmente funzionerà meglio su dipendenze lineari, altrimenti è necessario un kernel non lineare e la scelta del kernel potrebbe cambiare i risultati. Inoltre, le SVM sono meno interpretabili - per esempio se vuoi spiegare perché la classificazione era come era - non sarà banale. Gli alberi decisionali hanno una migliore interpretabilità, funzionano più velocemente e se si dispone di variabili categoriali / numeriche va bene, inoltre: le dipendenze non lineari sono gestite bene (dato N abbastanza grande). Inoltre si allenano più velocemente di SVM in generale, ma hanno la tendenza a sovrautilizzare ...

Vorrei anche provare la regressione logistica - ottimo classificatore interpretabile)

Per riassumere: la regola empirica è provare qualsiasi cosa e confrontare ciò che ti dà i migliori risultati / interpretazioni.


1

A complemento dei punti positivi già indicati:

Da Abbiamo bisogno di centinaia di classificatori per risolvere i problemi di classificazione del mondo reale? le foreste casuali hanno maggiori probabilità di ottenere prestazioni migliori rispetto alle foreste casuali.

Inoltre, il modo in cui gli algoritmi vengono implementati (e per ragioni teoriche) le foreste casuali sono di solito molto più veloci degli SVM (non lineari). Infatti come @Ianenok, le SVM tendono a essere inutilizzabili oltre i 10.000 punti dati.

Tuttavia, è noto che le SVM funzionano meglio su alcuni set di dati specifici (immagini, dati di microarray ...).

Quindi, ancora una volta, la validazione incrociata è davvero il modo migliore per sapere quale metodo funziona meglio.

Fonte: foresta casuale vs SVM


um? "le foreste casuali hanno maggiori probabilità di ottenere prestazioni migliori rispetto alle foreste casuali".
Sanjay Manohar,
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.