Caret varImp untuk model randomForest


10

Saya mengalami kesulitan memahami bagaimana varImpfungsi ini bekerja untuk model randomForest dengan caretpaket. Pada contoh di bawah ini, fitur var3 sama pentingnya dengan varImpfungsi caret , tetapi model final randomForest yang mendasarinya memiliki kepentingan nol untuk fitur var3. Mengapa demikian?

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

Saya menetapkan bendera moderator b / c ini di luar topik untuk SO. Lebih tepat untuk CrossValidated.com
DWin

Jawaban:


11

Seperti yang saya mengerti Anda hanya memiliki 3 variabel. Secara default varImpfungsi mengembalikan hasil skala di kisaran 0-100. Var3 memiliki nilai kepentingan terendah dan skala kepentingannya adalah nol. Cobalah menelepon varImp(rf, scale = FALSE).


0

Menambahkan ke jawaban DrDom @, untuk memberikan intuisi lebih lanjut:

Nilai penting yang varImp(rf, scale = FALSE)diberikan, dihitung dengan sederhana sebagai berikut: rf$finalModel$importance[,1]/rf$finalModel$importanceSD

Ini adalah rata-rata fitur% IncMSE dibagi dengan standar deviasinya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.