การวัดความสำคัญของตัวแปรในป่าสุ่ม


40

ฉันเล่นกับป่าที่สุ่มเพื่อการถดถอยและฉันก็ลำบากที่จะหาว่าค่าเฉลี่ยความสำคัญสองอย่างนี้เป็นอย่างไรและควรตีความอย่างไร

importance()ฟังก์ชั่นให้สองค่าสำหรับแต่ละตัวแปรและ%IncMSE IncNodePurityมีการตีความง่าย ๆ สำหรับค่า 2 ค่านี้หรือไม่?

สำหรับIncNodePurityโดยเฉพาะอย่างยิ่งเป็นแบบนี้เพียงแค่จำนวนเงินที่ RSS เพิ่มขึ้นต่อไปนี้การกำจัดของตัวแปรที่หรือไม่


1
มีคุณดู?importance? มีคำอธิบายเกี่ยวกับความหมายของมาตรการทั้งสองคือ ...
นิค Sabbe

2
@ Nick Sabbe ฉันมีและพยายามที่จะห่อหัวของฉันรอบ ๆ พวกเขา ฉันสงสัยว่ามีการตีความตามสัญชาตญาณที่ดีสำหรับพวกเขาหรือไม่
dcl

คำตอบ:


42

คนแรกสามารถ 'ตีความ' ดังนี้: หากตัวทำนายมีความสำคัญในรูปแบบปัจจุบันของคุณแล้วกำหนดค่าอื่น ๆ สำหรับตัวทำนายนั้นแบบสุ่ม แต่ 'แนบเนียน' (เช่น: อนุญาตให้ค่าตัวทำนายนี้อยู่เหนือชุดข้อมูลของคุณ) ควรมีอิทธิพลเชิงลบ บนการทำนายคือ: ใช้แบบจำลองเดียวกันเพื่อทำนายจากข้อมูลที่เหมือนกันยกเว้นสำหรับตัวแปรเดียวควรให้การคาดการณ์แย่ลง

ดังนั้นคุณใช้การวัดการทำนาย (MSE) กับชุดข้อมูลดั้งเดิมจากนั้นใช้ชุดข้อมูลที่ 'เปลี่ยนแปลง' และคุณเปรียบเทียบชุดข้อมูลเหล่านั้น วิธีหนึ่งโดยเฉพาะอย่างยิ่งเนื่องจากเราคาดหวังว่า MSE ดั้งเดิมจะเล็กกว่าเสมอความแตกต่างสามารถนำมาใช้ได้ ในที่สุดสำหรับการทำให้ค่าเทียบได้กับตัวแปรเหล่านี้จะถูกปรับขนาด

สำหรับอันที่สอง: ในแต่ละการแยกคุณสามารถคำนวณได้ว่าการแยกนี้จะลดความไม่บริสุทธิ์ของโหนด (สำหรับต้นไม้การถดถอยแน่นอนความแตกต่างระหว่าง RSS ก่อนและหลังการแยก) นี่คือผลรวมของการแยกทั้งหมดสำหรับตัวแปรนั้นกับต้นไม้ทั้งหมด

หมายเหตุ: การอ่านที่ดีคือองค์ประกอบของการเรียนรู้ทางสถิติโดย Hastie, Tibshirani และ Friedman ...


3
ไชโยฉันเปิดหนังสือเล่มนั้นจริงๆแล้วตอนนี้ :)
dcl

RSS หมายถึงอะไร
DavideChicco.it


10

ตัวชี้วัดความสำคัญฟอเรสต์แบบสุ่มที่นำมาใช้ในแพ็คเกจ RandomForest ใน R มีนิสัยใจคอในตัวทำนายที่สัมพันธ์กันจะได้รับค่าความสำคัญต่ำ

http://bioinformatics.oxfordjournals.org/content/early/2010/04/12/bioinformatics.btq134.full.pdf

ฉันมีการปรับใช้ป่าสุ่มใน CRAN ซึ่งใช้แนวทางของพวกเขาในการประมาณค่าเชิงประจักษ์และอัตราการค้นพบที่ผิดพลาดที่นี่

http://cran.r-project.org/web/packages/pRF/index.html


1
สิ่งนี้จะอธิบายผลลัพธ์ที่แตกต่างของตัวแปรสำคัญหรือไม่ถ้าคุณใช้ randomForest กับแพ็คเกจคาเร็ตเช่นcaret::train(method="rf", importance = TRUE, ...)?
Agile Bean
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.