In Random Forest, perché un sottoinsieme casuale di funzionalità viene scelto a livello di nodo anziché a livello di albero?


13

La mia domanda: Perché la foresta casuale considera sottoinsiemi casuali di funzioni da suddividere a livello di nodo all'interno di ciascun albero anziché a livello di albero ?

Sfondo: questa è una questione di storia. Tin Kam Ho pubblicato questo articolo sulla costruzione di "foreste" decision selezionando in modo casuale un sottoinsieme di funzionalità per l'uso per la coltivazione di ciascun albero nel 1998. Diversi anni dopo, nel 2001, Leo Breiman ha pubblicato il suo seminale Foresta a caso la carta , in cui la funzione di sottoinsieme è a caso selezionato in ciascun nodo all'interno di ciascun albero, non in ciascun albero. Mentre Breiman ha citato Ho, non ha spiegato in modo specifico il passaggio dalla selezione casuale delle funzioni a livello di albero a livello di nodo.

Mi chiedo cosa abbia motivato in modo specifico questo sviluppo. Sembra che la selezione del sottoinsieme di funzioni a livello di albero comporterebbe comunque la decorrelazione desiderata degli alberi.

La mia teoria: non ho visto questo articolato altrove, ma sembra che il metodo del sottospazio casuale sarebbe meno efficiente in termini di ottenere stime dell'importanza delle caratteristiche. Per ottenere stime di importanza variabile, per ogni albero, le caratteristiche sono casualmente permutate una per una e viene registrato l'aumento dell'errata classificazione o l'aumento dell'errore per le osservazioni out-of-bag. Le variabili per le quali la classificazione errata o l'errore aumentano risultanti da questa permutazione casuale sono elevate sono quelle di maggiore importanza.

Se usiamo il metodo del sottospazio casuale, per ogni albero, stiamo solo prendendo in considerazione delle caratteristiche . Potrebbero essere necessari diversi alberi per considerare tutti i predittori anche una volta. D'altra parte, se consideriamo un sottoinsieme diverso delle funzioni in ciascun nodo , considereremo ogni caratteristica più volte dopo un numero minore di alberi, dandoci una stima più solida dell'importanza della caratteristica.p p m i pmppmip

Quello che ho guardato finora: finora, ho letto il documento di Breiman e quello di Ho, e ho fatto un'ampia ricerca online per confronti dei metodi senza trovare una risposta definitiva. Si noti che una domanda simile è stata posta prima. Questa domanda va un po 'oltre includendo la mia speculazione / lavoro verso una possibile soluzione. Sarei interessato a qualsiasi risposta, citazioni pertinenti o studi di simulazione che confrontino i due approcci. Se nessuno è imminente, ho intenzione di eseguire la mia simulazione confrontando i due metodi.


2
Non citerò alcun riferimento, quindi chiamiamolo un commento. Se stai cercando di capire quali variabili sono utili, è possibile che una variabile specifica sia critica, ma solo su una piccola parte dei dati. Potresti scoprirlo insaccando le variabili a livello di nodo. Non lo scopriresti mai con l'insacco a livello di albero.
Meh

2
Sono sicuro che Breiman abbia un commento correlato a questo nel suo (seminale) articolo, "Statistiche - Le due culture". Il suo punto è che a volte l'importanza di una variabile è mascherata da un'altra variabile. Il bagging a livello di nodo consentirà di vedere cosa e quando per una variabile.
Meh

1
Grazie per i commenti Tornando alla mia idea sull'efficienza: supponiamo che una coppia di variabili fosse correlata e, come hai detto, l'importanza di una "mascherata" l'importanza di un'altra. Se costruissimo un predittore RF con abbastanza alberi e utilizzassimo il sottoimpostazione della funzione a livello di albero, alla fine non avremmo abbastanza alberi con la funzione "mascherato" e senza la funzione "mascheramento" per ottenere l'importanza del primo senza l'impatto di l'ultimo? Penso che stiamo parlando più o meno della stessa idea. Grazie!
djlid,

4
Potresti, ma considera quanti più alberi dovresti costruire! Inoltre non è chiaro. La variabile A potrebbe causare divisioni tali che in nessuna di esse brillerà la variabile B. È chiaramente intrinsecamente più robusto campionare a livello di nodo. Per me, si riferisce sostanzialmente a ciò che dovrebbe essere l'avvio del bootstrap.
Meh

Risposte:


1

Supponiamo di avere 10 funzioni f1, f2, ..., f9, f10, quindi quando prendiamo un sottoinsieme per supponiamo che f1, f3, f4, f8 di funzioni al livello dell'albero stesso, quindi costruiamo l'intero albero prendendo queste 4 caratteristiche in considerazione.

Calcoliamo l'entropia, confrontiamo solo queste 4 caratteristiche su ogni nodo e prendiamo quella caratteristica che produce la massima entropia. Questo non è molto utile in quanto stiamo limitando il nostro apprendimento dell'albero solo a quelle 4 funzionalità. Contrariamente a questo, quando prendiamo un sottoinsieme di funzionalità diciamo f1, f8, f9 nel primo nodo, calcoliamo l'entropia e li confrontiamo tra queste 3 caratteristiche e scegliamo quella che dà il massimo valore. Invece di espandere ulteriormente l'albero con le stesse funzionalità, abbiamo scelto un altro sottoinsieme di funzionalità, diciamo f4, f7, f2 e facciamo la divisione in base a queste funzionalità. Supponiamo che f8 sia stato selezionato nel primo nodo e f2 sia stato selezionato nel secondo nodo. Il modello è in grado di apprendere la relazione tra questi due che non

In questo modo, il modello può apprendere la relazione tra diverse funzionalità in un modo più diversificato. Questo approccio avrà una serie di caratteristiche esplorate in un singolo albero e quindi le relazioni tra loro saranno preservate. Spero che tu l'abbia ora :)

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.