Foresta casuale e algoritmo dell'albero delle decisioni


14

Una foresta casuale è una raccolta di alberi decisionali che seguono il concetto di insacco. Quando passiamo da un albero decisionale all'albero decisionale successivo, in che modo le informazioni apprese dall'ultimo albero decisionale passano al successivo?

Perché, secondo la mia comprensione, non esiste nulla come un modello addestrato che viene creato per ogni albero decisionale e quindi caricato prima che l'albero decisionale successivo inizi a imparare dall'errore classificato erroneamente.

Quindi, come funziona?


"Quando passiamo da un albero decisionale al successivo albero decisionale". Ciò suggerisce un processo lineare. Abbiamo realizzato implementazioni parallele in cui abbiamo lavorato su un albero per core della CPU; funziona perfettamente a meno che non si usi un generatore di numeri casuali separato per core della CPU in allenamento, che condividono tutti lo stesso seme. In quel caso puoi finire con un sacco di alberi identici.
MSalters,

Risposte:


23

Nessuna informazione viene trasmessa tra gli alberi. In una foresta casuale, tutti gli alberi sono distribuiti in modo identico, perché gli alberi vengono coltivati ​​usando la stessa strategia di randomizzazione per tutti gli alberi. Innanzitutto, prendi un campione bootstrap dei dati, quindi fai crescere l'albero usando le suddivisioni da un sottoinsieme di funzionalità scelto casualmente. Questo accade per ogni albero individualmente senza attenzione agli altri alberi dell'insieme. Tuttavia, gli alberi sono correlati esclusivamente in virtù della formazione di un albero su un campione da un pool comune di dati di allenamento; più campioni dello stesso set di dati tenderanno ad essere simili, quindi gli alberi codificheranno parte di tale somiglianza.

Potresti trovare utile leggere un'introduzione alle foreste casuali da un testo di alta qualità. Uno è "Random Forests" di Leo Breiman. C'è anche un capitolo in Elements of Statistical Learning di Hastie et al.

È possibile che tu abbia confuso foreste casuali con metodi di potenziamento come AdaBoost o alberi a gradiente. I metodi di potenziamento non sono gli stessi, perché usano le informazioni sull'adattamento dei precedenti round di potenziamento per informare il prossimo round di potenziamento. Vedi: La foresta casuale è un algoritmo di potenziamento?


10

Le foreste casuali sono una raccolta di più alberi decisionali che vengono addestrati indipendentemente l'uno dall'altro . Quindi non c'è idea dell'allenamento dipendente in sequenza (come nel caso degli algoritmi di potenziamento ). Di conseguenza, come indicato in un'altra risposta, è possibile eseguire un allenamento parallelo degli alberi.

Potresti sapere da dove proviene il "random" nella foresta casuale: ci sono due modi in cui la casualità viene iniettata nel processo di apprendimento degli alberi. Il primo è la selezione casuale di punti dati utilizzati per l'addestramento di ciascuno degli alberi, e il secondo è la selezione casuale di funzioni utilizzate nella costruzione di ciascun albero. Dato che un singolo albero decisionale tende generalmente a sovrautilizzare i dati, l'iniezione della casualità in questo modo si traduce in un gruppo di alberi in cui ognuno di essi ha una buona precisione (e possibilmente un eccesso di capacità) su un sottoinsieme diverso dei dati di addestramento disponibili . Pertanto, quando prendiamo la media delle previsioni fatte da tutti gli alberi, osserveremmo una riduzione del sovradimensionamento (rispetto al caso della formazione di un singolo albero decisionale su tutti i dati disponibili ).

Per capire meglio questo, ecco uno schizzo approssimativo del processo di addestramento, supponendo che tutti i punti dati siano memorizzati in un set indicato da e il numero di alberi nella foresta è :MN

  1. i=0
  2. Prelevare un campione boostrap di (cioè campionare con la sostituzione e con le stesse dimensioni di ) che è indicato da .MMSi
  3. Formare -esimo albero, indicato , utilizzando come dati di input. iTiSi
    • il processo di addestramento è uguale all'addestramento di un albero decisionale, tranne con la differenza che in ciascun nodo dell'albero viene utilizzata solo una selezione casuale di funzioni per la divisione in quel nodo.
  1. i=i+1
  2. se vai al passaggio 2, altrimenti tutti gli alberi sono stati addestrati, quindi l'addestramento casuale nella foresta è terminato.i<N

Nota che ho descritto l'algoritmo come un algoritmo sequenziale, ma poiché l'allenamento degli alberi non dipende l'uno dall'altro, puoi anche farlo in parallelo. Ora per la fase di previsione, prima fai una previsione per ogni albero (cioè , , ..., ) nella foresta e poi:T1T2TN

  • Se viene utilizzato per un'attività di regressione, prendere la media delle previsioni come previsione finale della foresta casuale.

  • Se viene utilizzato per un'attività di classificazione, utilizzare la strategia di voto morbido : prendere la media delle probabilità previste dagli alberi per ogni classe, quindi dichiarare la classe con la probabilità media più alta come previsione finale della foresta casuale.

Inoltre, vale la pena ricordare che è possibile addestrare gli alberi in modo dipendente in sequenza ed è esattamente ciò che fa l'algoritmo degli alberi a gradiente , che è un metodo completamente diverso dalle foreste casuali.


8

La foresta casuale è un algoritmo di insacco piuttosto che un algoritmo di potenziamento.

La foresta casuale costruisce l'albero in modo indipendente usando un campione casuale di dati. È possibile un'implementazione parallela.

Potresti provare a potenziare il gradiente in cui gli alberi sono costruiti in sequenza dove un nuovo albero cerca di correggere l'errore precedentemente commesso.


6

Quindi come funziona?

Random Forest è una raccolta di alberi decisionali. Gli alberi sono costruiti in modo indipendente. Ogni albero viene addestrato su un sottoinsieme di caratteristiche e sottoinsieme di un campione scelto con la sostituzione.

Quando pronostichi, diciamo per Classificazione, i parametri di input sono dati a ciascun albero nella foresta e ogni albero "vota" sulla classificazione, etichetta con la maggior parte dei voti vince.

Perché usare Random Forest su un semplice albero decisionale? Distorsione da pregiudizio / varianza. La foresta casuale è costruita da alberi molto più semplici rispetto a un singolo albero decisionale. Generalmente le foreste casuali forniscono una grande riduzione dell'errore a causa della varianza e un piccolo aumento dell'errore a causa della distorsione.


Se stiamo scegliendo caratteristiche diverse per ogni albero decisionale, come migliora l'apprendimento da parte di un insieme di funzioni nel precedente albero decisionale mentre inviamo in anticipo i valori classificati erroneamente, poiché per il prossimo albero decisionale c'è una nuova serie di funzioni?
Abhay Raj Singh,

3
@AbhayRajSingh - non si "inviano in anticipo i valori classificati erroneamente" in Random Forest. Come dice Akavall, "Gli alberi sono costruiti in modo indipendente"
Henry,

1

Sì, come hanno detto gli autori sopra, l'algoritmo Random Forest è un algoritmo di insacco, non di potenziamento.

Il bagging può ridurre la varianza del classificatore, poiché gli algoritmi di base, che sono adattati su campioni diversi e i loro errori sono reciprocamente compensati nel voto. Il bagging si riferisce alla media di versioni leggermente diverse dello stesso modello come mezzo per migliorare il potere predittivo. Per applicare il bagging costruiamo semplicemente alberi di regressione B usando B set di training avviati e calcoliamo la media delle previsioni risultanti

Un'applicazione comune e abbastanza efficace di insaccamento è la Foresta casuale

Ma quando si costruiscono questi alberi decisionali in una foresta casuale, ogni volta che viene considerata una divisione in un albero, mviene scelto un campione casuale di predittori come candidati divisi dall'insieme completo di predittori p. La divisione è autorizzata a utilizzare solo uno di questi mpredittori.

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.