Czy losowy las Breimana wykorzystuje informacje lub indeks Gini?

15

Chciałbym wiedzieć, czy losowy las Breimana (losowy las w pakiecie R randomForest) wykorzystuje jako kryterium podziału (kryterium wyboru atrybutów) przyrost informacji lub indeks Gini? Próbowałem to znaleźć na http://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htm oraz w dokumentacji pakietu randomForest w R. Ale jedyną rzeczą, jaką znalazłem, jest to, że można użyć indeksu Gini informatyka o zmiennym znaczeniu.

ktoś
źródło
Zastanawiam się także, czy drzewa losowego lasu w pakiecie randomForest są binarne, czy nie.
ktoś

Odpowiedzi:

16

Pakiet randomForest w R. autorstwa A. Liaw jest portem oryginalnego kodu będącego mieszanką kodu c (przetłumaczonego) pozostałego kodu fortran i kodu opakowania R. Aby zdecydować o ogólnym najlepszym podziale na punkty przerwania i zmienne mtry, kod używa funkcji oceniania podobnej do gini-gain:

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

Gdzie jest dana cecha, N jest węzeł, w którym szczelina ma być wykonane, oraz N +1 i N 2 są dwa węzły potomne przez rozszczepienie N . | . | to liczba elementów w węźle.XNN1N2N|.|

I , gdzie K jest liczbą kategorii w węźleGini(N)=1k=1Kpk2K

Ale zastosowana funkcja oceniania nie jest dokładnie taka sama, ale zamiast tego jest równoważną bardziej wydajną obliczeniowo wersją. i | N | są stałe dla wszystkich porównywanych podziałów i dlatego są pomijane.Gini(N)

Pozwala również sprawdzić część, jeśli suma kwadratowej częstości występowania w węźle (1) jest obliczana jako |N2||N|Gini(N2)|N2|Gini(N2)=|N2|(1k=1Kpk2)=|N2|nclass2,k2|N2|2

nclass1,k|N2|

1

|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

Soren Havelund Welling
źródło