Quando evitare la foresta casuale?


25

Le foreste casuali sono ben note per svolgere abbastanza bene su una varietà di compiti e sono state indicate come la pellettiera dei metodi di apprendimento . Esistono tipi di problemi o condizioni specifiche in cui si dovrebbe evitare di usare una foresta casuale?


8
Ciao. "PLS è il pellettiere di ...", "Bootstrap è il pellettiere di ...", "La foresta casuale è il pellettiere di ..." <- Ti consiglio di essere sospettoso su tali affermazioni. Era solo un commento :)
Stéphane Laurent,

Risposte:


24

Pensando al linguaggio specifico della citazione, un uomo in pelle è un multi-strumento: un singolo pezzo di hardware con un sacco di piccoli aggeggi nascosti. È un paio di pinze, un coltello, un cacciavite e altro! Invece di dover portare ciascuno di questi strumenti singolarmente, il pellettiere è un singolo oggetto che puoi agganciare ai tuoi pantaloni in modo che sia sempre a portata di mano. Questo è conveniente , ma il compromesso è che ciascuno degli strumenti dei componenti non è il migliore nel suo lavoro. L'apriscatole è difficile da usare, le punte del cacciavite hanno di solito le dimensioni sbagliate e il coltello può fare poco più che sbuffare. Se svolgere uno qualsiasi di questi compiti è fondamentale, ti verrebbe servito meglio con uno strumento specializzato: un vero coltello, un vero cacciavite o una vera coppia di pinze.

Una foresta casuale può essere pensata negli stessi termini. La foresta casuale produce risultati eccellenti su una varietà di set di dati e non è incredibilmente sensibile ai parametri di ottimizzazione. Ma non è perfetto Più conosci il problema, più è facile creare modelli specializzati per soddisfare il tuo problema specifico.

Ci sono un paio di casi ovvi in ​​cui le foreste casuali faranno fatica:

  • Sparsità : quando i dati sono molto scarsi, è molto plausibile che per alcuni nodi, l'esempio di bootstrap e il sottoinsieme casuale di funzionalità collaboreranno per produrre uno spazio invariante. Non si può avere una divisione produttiva, quindi è improbabile che i figli di questo nodo possano essere utili. XGBoost può fare di meglio in questo contesto.

  • I dati non sono allineati agli assi : supponiamo che ci sia un limite di decisione diagonale nello spazio di due funzioni, e . Anche se questa è l'unica dimensione rilevante per i tuoi dati, ci vorrà un normale modello di foresta casuale molte divisioni per descrivere quel confine diagonale. Questo perché ogni divisione è orientata perpendicolarmente all'asse di o . (Questo dovrebbe essere intuitivo perché un normale modello di foresta casuale sta dividendo il modulox1x2x1x2x1>4.) La foresta di rotazione, che esegue una proiezione PCA sul sottoinsieme di funzioni selezionate per ciascuna divisione, può essere utilizzata per ovviare a questo: le proiezioni su una base ortogonale, in linea di principio, ridurranno l'influenza della proprietà allineata agli assi perché le divisioni non sarà più allineato all'asse nella base originale.

    Questa immagine fornisce un altro esempio di come le divisioni allineate agli assi influenzano le decisioni casuali sulla foresta. Il confine di decisione è un cerchio all'origine, ma nota che questo particolare modello di foresta casuale disegna una casella per approssimare il cerchio. Ci sono una serie di cose che si potrebbero fare per migliorare questo confine; il più semplice include la raccolta di più dati e la costruzione di più alberi. inserisci qui la descrizione dell'immagine

  • Le foreste casuali fondamentalmente funzionano solo su dati tabulari,cioè non esiste una relazione forte, qualitativamente importante tra le caratteristiche nel senso che i dati sono un'immagine, o le osservazioni che sono collegate in rete su un grafico. Queste strutture non sono in genere ben approssimate da molte partizioni rettangolari. Se i tuoi dati vivono in una serie temporale, o sono una serie di immagini, o vivono in un grafico o hanno qualche altra struttura ovvia, la foresta casuale avrà difficoltà a riconoscerlo. Non ho dubbi sul fatto che i ricercatori abbiano sviluppato variazioni sul metodo per tentare di soddisfare queste situazioni, ma una foresta casuale alla vaniglia non raccoglierà necessariamente queste strutture in modo utile. La buona notizia è che in genere sai quando è così, ovvero sai di avere immagini, una serie temporale o un grafico con cui lavorare,

Penso che le foreste casuali alla vaniglia abbiano il potenziale per riconoscere partizioni non rettangolari. Possiamo avere caratteristiche quadratiche per esempio e riconoscere confini come x ^ 2 <c.
Aniruddha Acharya,

2
@AniruddhaAcharya Ho detto "lotta", non fallire. La mia risposta qui chiarisce che le caratteristiche quadratiche non sono un problema insormontabile. Ma le diagonali o le quadratiche o altri tipi di divisione non allineati richiedono che gli alberi si dividano più e più volte su quelle caratteristiche in modo rettangolare per approssimare una diagonale / curva. Puoi vedere quell'effetto nella trama di questo post: guarda gli angoli acuti. RF utilizza un quadrato per approssimare un cerchio.
Sycorax dice di ripristinare Monica

Intendevo alimentare le funzioni quadratiche (e di altro ordine superiore) a RF per ridurre la lotta nella modellazione di partizioni non rettangolari. Ad esempio, le RF possono usare 2 quadratiche per approssimare il cerchio invece di usare un quadrato. Anche se concordo sul fatto che non è facile come i modelli che incorporano l'interazione tra le variabili, non mi sento così difficile perché le RF non si limitano all'utilizzo delle soglie sulle funzionalità non elaborate.
Aniruddha Acharya,

1
@AniruddhaAcharya Se sai che i termini quadrati sono il modello giusto, non hai bisogno di una foresta casuale: aggiungi semplicemente termini quadrati a un modello lineare. La RF è un buon modo per approssimare le funzioni arbitrarie, specialmente quando hanno funzioni di decisione allineate agli assi.
Sycorax dice Reinstate Monica l'

Perché l'ingegnerizzazione della funzione (termini quadratici) suggerita da @AniruddhaAcharya non è un passaggio utile da usare insieme alle RF? Sì, queste funzionalità potrebbero essere aggiunte a un modello lineare: ma quest'ultima non fornisce il comportamento di combinare i contributi di molti risultati che sono ottimizzati individualmente per diversi sottoinsiemi delle funzionalità.
javadba,

22

Angoli acuti. Esattezza.

Usano metodi di diffusione. Si adattano bene alle cose grumose. Non si adattano bene a cose elaborate e altamente dettagliate quando la dimensione del campione è bassa. Immagino che non facciano bene sui dati di serie temporali multivariate - quando qualcosa qui dipende da quell'unica cosa laggiù a distanza.

Le foreste potenziate con gradiente potrebbero adattarsi o sovra-adattarsi, ma possono ottenere errori sostanzialmente inferiori per gli stessi dati.

" Leathermen " non esistono. Non ci sono "proiettili d'argento". Ci sono cassette degli attrezzi. Conosci i tuoi strumenti e prenditi cura di loro in modo che possano prendersi cura di te. Diffidare di "quando sei un martello, quindi ogni problema sembra un chiodo" soprattutto quando non hai una libreria densa nella tua cassetta degli attrezzi.

Finché non conosci bene il problema, è facile immaginare che qualcosa possa risolverlo o che il tuo strumento preferito possa risolverlo. La saggezza suggerisce di approfondire la comprensione del problema e di conoscere molto bene i tuoi strumenti.

Aggiunto: se hai abbastanza risorse di calcolo o margine di tempo per usare qualcos'altro. La RF non è solo veloce da addestrare, ma veloce da eseguire. Una struttura potenziata molto profonda è meno di questo. Devi avere il sovraccarico per supportarlo.


2
Per essere il difensore del diavolo qui: nulla "si adatta bene a cose elaborate e molto dettagliate quando la dimensione del campione è bassa "
usεr11852 dice Reinstate Monic il

5

Questa è la prima volta che rispondo effettivamente a una domanda, quindi non mi appuntare su di esso .. ma penso di poter rispondere alla tua domanda:

Se sei davvero interessato solo alle prestazioni del modello e non a cose come l'interpretazione della foresta casuale sono spesso un algoritmo di apprendimento molto buono, ma esegui leggermente peggio nei seguenti casi:

1.) Quando la dimensionalità (numero di funzioni) è molto elevata rispetto al numero di campioni di addestramento, in quei casi sarebbe meglio una regressione lineare regolarizzata o SVM.

2.) Nel caso ci siano rappresentazioni di ordine superiore / strutture convoluzionali nei dati, come ad esempio in problemi di visione artificiale. In quei casi di visione artificiale una rete neurale convoluzionale supererà una foresta casuale (in generale se c'è conoscenza si può incorporare nell'apprendimento che è una cosa migliore).

Detto questo, la foresta casuale è un ottimo punto di partenza. Una delle persone che ammiro per le sue abilità di Machine Learning inizia sempre con l'apprendimento di una foresta casuale e un regressore lineare regolarizzato.

Tuttavia, se si desidera la migliore prestazione possibile, credo al giorno d'oggi le reti neurali aka. Il Deep Learning sembra un approccio molto interessante. Sempre più vincitori su siti Web di sfida dei dati come Kaggle utilizzano modelli di Deep Learning per la competizione. Un altro pro delle reti neurali è che possono gestire un numero molto grande di campioni (> 10 ^ 6 si possono addestrare usando la pendenza stocastica in discesa, alimentando bit di dati alla volta). Personalmente trovo questo un pro molto interessante per il Deep Learning.


2
Bella risposta, ma il tuo ultimo punto non è corretto: la formazione mini-batch può essere implementata per tutti gli algoritmi di apprendimento automatico comuni, vedi ad esempio h2o .
jubo,

Oke, interessante, non lo sapevo. Stai dicendo che usando questi metodi si può addestrare un albero (decisionale) usando l'apprendimento mini-batch / SGD e quindi costruire un singolo albero basato su una divisione maggioritaria dei dati totali di addestramento (diciamo 65%)?
MJW,

1
Penso che la foresta casuale dovrebbe comunque essere buona quando il numero di funzionalità è elevato, ma non usare molte funzionalità contemporaneamente quando si costruisce un singolo albero e alla fine si avrà una foresta di classificatori indipendenti che dovrebbero collettivamente ( speriamo) fare bene.
Alexey Grigorev,

Per quanto ho capito, h2o utilizza il paradigma di riduzione della mappa per l'addestramento su minibatch. Gli alberi singoli (CART) non sono implementati come tali in h2o (ma suppongo che un albero non potato sia un caso speciale di foresta casuale con un solo albero e la massima scelta di predittori?).
jubo,

2
Qual è la giustificazione per (1)? Inoltri un reclamo, ma non fornisci alcun argomento di supporto.
Sycorax dice di ripristinare Monica

0

Innanzitutto, la foresta casuale non può essere applicata ai seguenti tipi di dati:

  • immagini
  • Audio
  • testo (dopo che i dati di preelaborazione saranno sparsi e RF non funziona bene con i dati sparsi)

Per il tipo di dati tabulari, è sempre utile controllare Random Forest perché:

  • richiede meno preparazione e preelaborazione dei dati rispetto alle reti neurali o SVM. Ad esempio, non è necessario eseguire il ridimensionamento delle funzionalità.
  • Per l'allenamento della foresta casuale puoi semplicemente usare i parametri predefiniti e impostare il numero di alberi ( più alberi in RF sono, meglio è ). Quando si confronta Random Forest con Neural Networks , la formazione è molto semplice (non è necessario definire l'architettura o ottimizzare l'algoritmo di formazione). Random Forest è più facile da addestrare rispetto alle reti neurali.
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.