Liệu rừng ngẫu nhiên của Breiman sử dụng thông tin đạt được hoặc chỉ số Gini?


15

Tôi muốn biết liệu rừng ngẫu nhiên của Breiman (rừng ngẫu nhiên trong gói R RandomForest) sử dụng làm tiêu chí chia tách (tiêu chí lựa chọn thuộc tính) hay chỉ số Gini? Tôi đã cố gắng tìm ra nó trên http: //www.stat.ber siêu.edu / ~zonamiman/RandomForests/cc_home.htmlm và trong tài liệu cho gói RandomForest trong R. Nhưng điều duy nhất tôi tìm thấy là chỉ số Gini có thể được sử dụng cho tính toán quan trọng thay đổi.


Tôi cũng tự hỏi nếu cây rừng ngẫu nhiên trong gói RandomForest là nhị phân hay không.
ai đó

Câu trả lời:


16

Gói RandomForest trong R của A. Liaw là một cổng của mã gốc là sự pha trộn của mã c (đã được dịch) một số mã fortran còn lại và mã trình bao bọc R. Để quyết định sự phân chia tốt nhất tổng thể giữa các điểm dừng và trên các biến mtry, mã sử dụng chức năng chấm điểm tương tự như gini-gain:

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

Trong trường hợp là một tính năng nhất định, N là nút mà chia tay là được thực hiện, và N 1N 2 là hai nút con được tạo ra bằng cách tách N . | . | là số phần tử trong một nút.XNN1N2N|.|

, nơi K là số chủng loại trong nútGini(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

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.