2016-01-25 29 views
13

Ho una domanda di base sull'ottimizzazione di un classificatore di foresta casuale. Esiste una relazione tra il numero di alberi e la profondità dell'albero? È necessario che la profondità dell'albero sia inferiore al numero di alberi?sintonizzazione foresta casuale - profondità dell'albero e numero di alberi

+2

@ B.ClayShannon Le foreste casuali sono un metodo di apprendimento automatico. La sua domanda appartiene totalmente qui. –

+1

Non ho mai sentito parlare di un rapporto della regola del pollice tra il numero di alberi e la profondità dell'albero. Generalmente vuoi tanti alberi quanto migliorerai il tuo modello. La profondità dell'albero dovrebbe essere sufficiente per suddividere ciascun nodo al numero desiderato di osservazioni. –

+0

@TimBiegeleisen ecco la mia regola del pollice :) –

risposta

11

Per la maggior parte dei problemi pratici, sono d'accordo con Tim.

Tuttavia, altri parametri hanno effetto quando l'errore dell'insieme converge in funzione di alberi aggiunti. Immagino che limitare la profondità dell'albero in genere farebbe convergere l'insieme un po 'prima. Raramente giocherellavo con la profondità degli alberi, come se il tempo di calcolo fosse abbassato, non da nessun altro bonus. La riduzione della dimensione del campione di bootstrap consente sia una riduzione del tempo di esecuzione sia una minore correlazione dell'albero, quindi spesso prestazioni del modello migliori a un tempo di esecuzione paragonabile. Un trucco non tanto menzionato: quando la varianza della spiegazione del modello RF è inferiore al 40% (dati apparentemente rumorosi), è possibile ridurre la campionatura a ~ 10-50% e aumentare gli alberi ad es. 5000 (di solito inutili molti). L'errore dell'insieme convergerà più tardi in funzione degli alberi. Tuttavia, a causa della minore correlazione tra alberi, il modello diventa più robusto e raggiungerà un livello di errore OOB inferiore.

Vedete di seguito sampleize fornisce la migliore convergenza di lungo periodo, mentre i maxnodi partono da un punto inferiore ma convergono di meno. Per questi dati rumorosi, la limitazione dei maxnode è ancora migliore rispetto alla RF predefinita. Per i dati a bassa rumorosità, la diminuzione della varianza diminuendo i maxnodi o la dimensione del campione non aumenta l'aumento di bias dovuto alla mancanza di adattamento.

Per molte situazioni pratiche, si dovrebbe semplicemente rinunciare, se si potesse spiegare solo il 10% della varianza. Pertanto, la RF predefinita è in genere valida. Se sei un quant, chi può scommettere su centinaia o migliaia di posizioni, il 5-10% ha spiegato la varianza è fantastico.

la curva verde è maxnodi che tipo profondità dell'albero ma non esattamente.

enter image description here

library(randomForest) 

X = data.frame(replicate(6,(runif(1000)-.5)*3)) 
ySignal = with(X, X1^2 + sin(X2) + X3 + X4) 
yNoise = rnorm(1000,sd=sd(ySignal)*2) 
y = ySignal + yNoise 
plot(y,ySignal,main=paste("cor="),cor(ySignal,y)) 

#std RF 
rf1 = randomForest(X,y,ntree=5000) 
print(rf1) 
plot(rf1,log="x",main="black default, red samplesize, green tree depth") 

#reduced sample size 
rf2 = randomForest(X,y,sampsize=.1*length(y),ntree=5000) 
print(rf2) 
points(1:5000,rf2$mse,col="red",type="l") 

#limiting tree depth (not exact) 
rf3 = randomForest(X,y,maxnodes=24,ntree=5000) 
print(rf2) 
points(1:5000,rf3$mse,col="darkgreen",type="l") 
+1

Grazie mille per la spiegazione. Potrei capire fino a un certo punto cosa intendi, tuttavia, dato che mi sto ancora abituando a tutto questo concetto di sviluppo di modelli casuali della foresta, ho qualche altra domanda basata sulla tua risposta. Che cos'è esattamente la correlazione dell'albero e come la si misura? La stima OOB e l'errore di ensemble sono le stesse cose?Poiché questi potrebbero essere molto semplici, potresti farmi sapere se c'è un articolo se riesco a leggere per capire meglio i termini. Grazie mille! – Vysh

8

E 'vero che in generale più alberi si tradurrà in una migliore precisione. Tuttavia, più alberi significano anche più costi computazionali e, dopo un certo numero di alberi, il miglioramento è trascurabile. Un articolo di Oshiro et al. (2012) hanno sottolineato che, in base al test con 29 set di dati, dopo 128 alberi non vi è alcun miglioramento significativo (che è in linea con il grafico di Soren).

Per quanto riguarda la profondità dell'albero, l'algoritmo della foresta casuale standard aumenta l'intero albero decisionale senza potatura. Un singolo albero decisionale ha bisogno di potatura per superare il problema eccessivo. Tuttavia, nella foresta casuale, questo problema viene eliminato selezionando casualmente le variabili e l'azione OOB.

Riferimento: Oshiro, T.M., Perez, P.S. e Baranauskas, J.A., 2012, luglio. Quanti alberi in una foresta casuale? In MLDM (pp. 154-168).