Caret varImp สำหรับรุ่นสุ่มป่าไม้


10

ฉันมีปัญหาในการทำความเข้าใจเกี่ยวกับวิธีการvarImpทำงานของโมเดลสุ่มป่าด้วยcaretแพคเกจ ในตัวอย่างด้านล่างนี้คุณลักษณะ var3 ได้รับความสำคัญเป็นศูนย์โดยใช้varImpฟังก์ชั่นของคาเร็ต แต่โมเดลขั้นสุดท้ายแบบสุ่มพื้นฐานที่มีความสำคัญไม่เป็นศูนย์สำหรับคุณลักษณะ var3 เหตุใดจึงเป็นเช่นนี้

require(randomForest)
require(caret)


rf <- train(x, y, 
      method = "rf",
      trControl = trainControl(method = "oob"),
      importance = TRUE,
      verbose = TRUE,
      tuneGrid = data.frame(mtry = num.predictors) )


fm <- rf$finalModel


> varImp(f)
rf variable importance

       Overall
var1    100.00
var2    80.14
var3    0.00


> importance(fm)
        %IncMSE IncNodePurity
var2    872.7935      40505276
var1    1021.4707      55682866
var3     273.0168       3078731

ฉันตั้งค่าสถานะโมเดอเรเตอร์ b / c นี่เป็นหัวข้อสำหรับ SO เหมาะสมสำหรับ CrossValidated.com
dwin

คำตอบ:


11

ที่ฉันเข้าใจคุณมีเพียง 3 ตัวแปร โดยvarImpฟังก์ชั่นเริ่มต้นส่งกลับผลลัพธ์ที่ปรับอัตราส่วนในช่วง 0-100 Var3 มีค่าความสำคัญต่ำสุดและค่าสเกลที่สำคัญคือศูนย์ varImp(rf, scale = FALSE)ลองโทรมา


0

เพิ่มคำตอบของ @ DrDom เพื่อให้ปรีชาเพิ่มเติม:

คะแนนความสำคัญที่varImp(rf, scale = FALSE)ให้นั้นสามารถคำนวณได้จาก: rf$finalModel$importance[,1]/rf$finalModel$importanceSD

นี่คือค่าเฉลี่ย% IncmsE ของคุณลักษณะหารด้วยค่าเบี่ยงเบนมาตรฐาน

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