Motivazione dietro i passi dell'algoritmo di foresta casuale


11

Il metodo che ho familiarità con la costruzione di una foresta casuale è il seguente: (da http://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm )

Per costruire un albero nella foresta noi:

  1. Bootstrap un campione di dimensione N dove N è la dimensione del nostro set di allenamento. Utilizzare questo esempio di bootstrap come set di training per questo albero.
  2. Su ciascun nodo dell'albero selezionare casualmente m delle nostre funzioni M. Seleziona la migliore di queste funzioni m su cui dividere. (dove m è un parametro della nostra foresta casuale)
  3. Coltiva ogni albero il più possibile - cioè senza potatura.

Mentre questo algoritmo ha senso a livello procedurale e certamente produce buoni risultati, non sono chiaro quale sia la motivazione teorica dietro i passaggi 1, 2 e 3. Qualcuno potrebbe spiegare cosa ha motivato qualcuno a inventare questa procedura e perché funziona così bene?

Ad esempio: perché dobbiamo eseguire il passaggio 1? Non sembra che stiamo avviando il bootstrap per il suo solito scopo di riduzione della varianza.

Risposte:


9

I metodi di ensemble (come le foreste casuali) richiedono alcuni elementi di variazione nei set di dati su cui vengono coltivati ​​i singoli classificatori di base (altrimenti le foreste casuali finirebbero con una foresta di alberi troppo simili). Poiché gli alberi decisionali sono molto sensibili alle osservazioni nel set di addestramento, la variazione delle osservazioni (usando il bootstrap) era, suppongo, un approccio naturale per ottenere la diversità richiesta. L'alternativa ovvia è quella di variare le funzionalità utilizzate, ad esempio addestrare ciascun albero su un sottoinsieme delle funzionalità originali. L'uso degli esempi bootstrap ci consente anche di stimare il tasso di errore out-of-bag (OOB) e l'importanza variabile.

2 è essenzialmente un altro modo di iniettare casualità nella foresta. Ha anche un impatto sulla riduzione della correlazione tra gli alberi (usando un basso valore di mtry), con il compromesso che (potenzialmente) sta peggiorando il potere predittivo. L'uso di un valore troppo grande di mtry farà sì che gli alberi diventino sempre più simili tra loro (e all'estremo si finisce con l'insacco)

Credo che il motivo della non potatura sia più dovuto al fatto che non è necessario che altro. Con un singolo albero decisionale normalmente lo potresti perché è altamente suscettibile al sovradimensionamento. Tuttavia, utilizzando i campioni bootstrap e facendo crescere molti alberi, le foreste casuali possono far crescere alberi che sono individualmente forti, ma non particolarmente correlati tra loro. Fondamentalmente, i singoli alberi sono troppo adatti ma a condizione che i loro errori non siano correlati la foresta dovrebbe essere ragionevolmente accurata.

Il motivo per cui funziona bene è simile al teorema della giuria di Condorcet (e alla logica alla base di metodi come il potenziamento). Fondamentalmente hai un sacco di studenti deboli che devono solo eseguire marginalmente meglio delle ipotesi casuali. Se questo è vero, puoi continuare ad aggiungere studenti deboli e, nel limite, otterrai previsioni perfette dal tuo ensemble. Chiaramente questo è limitato a causa della correlazione degli errori degli studenti, che impedisce il miglioramento delle prestazioni dell'ensemble.


Bella risposta, e l'associazione con il teorema della giuria di Condorcet ha un senso. Formalmente, il motivo per cui funziona bene è a causa della disuguaglianza di Jensen!
JEquihua
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.