ป่าสุ่มของ Breiman ใช้ข้อมูลที่ได้รับหรือดัชนี Gini หรือไม่


15

ฉันต้องการทราบว่าป่าสุ่มของ Breiman (ป่าสุ่มในแพคเกจ R สุ่มป่า) ใช้เป็นเกณฑ์แยก (เกณฑ์สำหรับการเลือกคุณลักษณะ) ได้รับข้อมูลหรือดัชนี Gini หรือไม่ ฉันพยายามค้นหามันในhttp://www.stat.berkeley.edu/~breiman/RandomForests/cc_home.htmและในเอกสารสำหรับแพ็คเกจ randomForest ใน R แต่สิ่งเดียวที่ฉันพบคือดัชนี Gini สามารถใช้สำหรับ การคำนวณความสำคัญของตัวแปร


ฉันยังสงสัยว่าต้นไม้แห่งป่าสุ่มในแพ็คเกจสุ่มป่าไม้นั้นเป็นเลขฐานสองหรือไม่
ใครบางคน

คำตอบ:


16

แพ็คเกจ RandomForest ใน R โดย A. Liaw เป็นพอร์ตของรหัสต้นฉบับซึ่งเป็นการผสมผสานของ c-code (แปล) รหัส Fortran ที่เหลืออยู่บางส่วนและรหัส R wrapper ในการตัดสินใจแยกโดยรวมที่ดีที่สุดระหว่างจุดพักและข้ามตัวแปร mtry รหัสจะใช้ฟังก์ชันการให้คะแนนที่คล้ายกับ 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

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.