Saya mengalami kesulitan memahami bagaimana varImp
fungsi ini bekerja untuk model randomForest dengan caret
paket. Pada contoh di bawah ini, fitur var3 sama pentingnya dengan varImp
fungsi 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
r
caret
random-forest
MangoHands
sumber
sumber
Jawaban:
Seperti yang saya mengerti Anda hanya memiliki 3 variabel. Secara default
varImp
fungsi mengembalikan hasil skala di kisaran 0-100. Var3 memiliki nilai kepentingan terendah dan skala kepentingannya adalah nol. Cobalah meneleponvarImp(rf, scale = FALSE)
.sumber
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.
sumber