La foresta casuale di Breiman utilizza il guadagno di informazioni o l'indice Gini?


15

Vorrei sapere se la foresta casuale di Breiman (foresta casuale nel pacchetto R randomForest) utilizza come criterio di suddivisione (criterio per la selezione degli attributi) guadagno di informazioni o indice Gini? Ho provato a scoprirlo su http://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm e nella documentazione per il pacchetto randomForest in R. Ma l'unica cosa che ho trovato è che l'indice Gini può essere usato per calcolo a importanza variabile.


Mi chiedo anche se gli alberi della foresta casuale nel pacchetto randomForest siano binari o meno.
Qualcuno il

Risposte:


16

Il pacchetto randomForest in R di A. Liaw è una porta del codice originale che è un mix di c-code (tradotto) del codice fortran rimanente e del codice wrapper R. Per decidere la migliore suddivisione complessiva tra punti di interruzione e variabili di mtry, il codice utilizza una funzione di punteggio simile a gini-gain:

GiniGain(N,X)=Gini(N)|N1||N|Gini(N1)|N2||N|Gini(N2)

XNN1N2N|.|

Gini(N)=1k=1Kpk2K

Gini(N)

|N2||N|Gini(N2)|N2|Gini(N2)=|N2|(1k=1Kpk2)=|N2|nclass2,k2|N2|2

where nclass1,k is the class count of target-class k in daughter node 1. Notice |N2| is placed both in nominator and denominator.

removing the trivial constant 1 from equation such that best split decision is to maximize nodes size weighted sum of squared class prevalence...

score= |N1|k=1Kp1,k2+|N2|k=1Kp2,k2=|N1|k=1Knclass1,k2|N1|2+|N2|k=1Knclass2,k2|N2|2 =k=1Knclass2,k21|N1|1+k=1Knclass2,k21|N1|2 =nominator1/denominator1+nominator2/denominator2

The implementation also allows for classwise up/down weighting of samples. Also very important when the implementation update this modified gini-gain, moving a single sample from one node to the other is very efficient. The sample can be substracted from nominators/denominators of one node and added to the others. I wrote a prototype-RF some months ago, ignorantly recomputing from scratch gini-gain for every break-point and that was slower :)

If several splits scores are best, a random winner is picked.

This answer was based on inspecting source file "randomForest.x.x.tar.gz/src/classTree.c" line 209-250

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.