Random Forest si allena?


24

Ho letto delle foreste casuali ma non riesco davvero a trovare una risposta definitiva al problema del sovradimensionamento. Secondo il documento originale di Breiman, non dovrebbero esagerare quando si aumenta il numero di alberi nella foresta, ma sembra che non ci sia consenso al riguardo. Questo mi sta creando una certa confusione sul problema.

Forse qualcuno più esperto di me può darmi una risposta più concreta o indirizzarmi nella giusta direzione per capire meglio il problema.


3
Tutti gli algoritmi si adattano in una certa misura. Non si tratta di scegliere qualcosa che non si adatta eccessivamente, si tratta di considerare attentamente la quantità di overfitting e la forma del problema che si sta risolvendo per massimizzare le metriche più pertinenti.
indico,

1
ISTR che Breiman aveva una prova basata sulla legge dei grandi numeri. Qualcuno ha scoperto un difetto in quella prova?
JenSCDC,

Risposte:


22

Ogni algoritmo ML con elevata complessità può sovrautilizzare. Tuttavia, l'OP chiede se una RF non si adatta eccessivamente quando aumenta il numero di alberi nella foresta.

In generale, i metodi di ensemble riducono la variazione della predizione a quasi nulla, migliorando l'accuratezza dell'ensemble. Se definiamo la varianza dell'errore di generalizzazione atteso di un singolo modello randomizzato come:

Da qui , la varianza dell'errore di generalizzazione atteso di un ensemble corrisponde a:

dove si p(x)trova il coefficiente di correlazione di Pearson tra le previsioni di due modelli randomizzati addestrati sugli stessi dati da due semi indipendenti. Se aumentiamo il numero di DT nella RF, maggiore M, la varianza dell'ensemble diminuisce quando ρ(x)<1. Pertanto, la varianza di un ensemble è strettamente inferiore alla varianza di un singolo modello.

In breve, aumentare il numero di singoli modelli randomizzati in un ensemble non aumenterà mai l'errore di generalizzazione.


1
Questo è sicuramente ciò che dice Leo Breiman e la teoria, ma empiricamente sembra che si adattino decisamente. Ad esempio, attualmente ho un modello con MSE CV di 10 volte di 0,02, ma quando misurato rispetto alla verità di base l'MSE CV è di .4. OTOH se riduco la profondità dell'albero e il numero dell'albero, le prestazioni del modello migliorano significativamente.
Hack-R,

4
Se riduci la profondità dell'albero è un caso diverso perché stai aggiungendo regolarizzazione, il che ridurrà il sovradimensionamento. Prova a tracciare il diagramma MSE quando aumenti il ​​numero di alberi mantenendo invariato il resto dei parametri. Quindi, hai MSE nell'asse y e num_tress nell'asse x. Vedrai che quando si aggiungono più alberi, l'errore diminuisce rapidamente e quindi ha un plateau; ma non aumenterà mai.
tashuhka,

9

Potresti voler verificare la convalida incrociata - un sito Web stachexchange per molte cose, incluso l'apprendimento automatico.

In particolare, questa domanda (con esattamente lo stesso titolo) ha già ricevuto più risposte. Controlla questi link: /stats//search?q=random+forest+overfit

Ma potrei darti la risposta breve: sì, si adatta in modo eccessivo, e talvolta devi controllare la complessità degli alberi nella tua foresta, o potare anche quando crescono troppo - ma questo dipende dalla libreria che usi per costruire la foresta. Ad esempio in randomForestR puoi solo controllare la complessità


3
  1. La foresta casuale si adatta troppo.
  2. La foresta casuale non aumenta l'errore di generalizzazione quando vengono aggiunti più alberi al modello. La varianza della generalizzazione andrà a zero con più alberi utilizzati.

Ho fatto un esperimento molto semplice. Ho generato i dati sintetici:

y = 10 * x + noise

Ho addestrato due modelli Random Forest:

  • uno con alberi pieni
  • uno con alberi potati

Il modello con alberi pieni presenta un errore del treno inferiore ma un errore di prova superiore rispetto al modello con alberi potati. Le risposte di entrambi i modelli:

risposte

È una chiara prova di eccesso di adattamento. Quindi ho preso gli iperparametri del modello sovradimensionato e ho verificato l'errore mentre aggiungevo ad ogni albero del passo 1. Ho ottenuto la seguente trama:

alberi in crescita

Come puoi vedere, l'errore di overfit non cambia quando si aggiungono più alberi ma il modello è sovradimensionato. Ecco il link per l'esperimento che ho fatto.


1

DATASET STRUTTURATO -> ERRORI OOB DI MISLEADING

Ho trovato un caso interessante di overfitting RF nella mia pratica di lavoro. Quando i dati sono strutturati, RF si sovrappone alle osservazioni OOB.

Dettaglio :

Cerco di prevedere i prezzi dell'elettricità sul mercato spot dell'elettricità per ogni singola ora (ogni riga del set di dati contiene i parametri di prezzo e di sistema (carico, capacità ecc.) Per quella singola ora).
I prezzi dell'elettricità sono creati in lotti (24 prezzi creati sul mercato dell'elettricità in un'unica soluzione in un momento del tempo).
Quindi OOB OOB per ogni albero sono sottoinsiemi casuali di set di ore, ma se prevedi le prossime 24 ore lo fai tutto in una volta (al primo momento ottieni tutti i parametri di sistema, quindi prevedi 24 prezzi, quindi c'è una correzione che produce quei prezzi), quindi è più facile fare previsioni OOB, quindi per l'intero giorno successivo. Gli OOB OOB non sono contenuti in blocchi di 24 ore, ma sono distribuiti uniformemente, poiché esiste un'autocorrelazione di errori di previsione, è più facile prevedere il prezzo per singola ora che manca quindi per l'intero blocco di ore mancanti.

più facile da prevedere in caso di errore di autocorrelazione:
noto, noto, previsione, noto, previsione - Caso OBB
più difficile:
noto, noto, noto, previsione, previsione - caso di previsione del mondo reale

Spero sia interessante

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.