插入符varImp用于randomForest模型


10

我在了解该varImp函数如何对带有caret包的randomForest模型起作用时遇到了麻烦。在下面的示例中,功能var3使用插入符号varImp函数的重要性为零,但基础的randomForest最终模型对功能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

Answers:


11

据我了解,您只有3个变量。默认情况下,该varImp函数返回范围为0-100的缩放结果。Var3具有最低的重要性值,其缩放的重要性为零。尝试致电varImp(rf, scale = FALSE)


0

为了提供进一步的直觉,在@DrDom的答案中添加:

varImp(rf, scale = FALSE)给出的重要性得分可以简单地通过以下方式计算: rf$finalModel$importance[,1]/rf$finalModel$importanceSD

这是特征的平均值%IncMSE除以其标准偏差。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.