我需要一些帮助来理解r中可用的随机森林包中的重要功能。
运行随机森林(rf)后,可以用rf$importance访问重要性。然后返回的数据帧包含两个字段:%IncMSE和IncNodePurity。
两者都可以使用随机森林包中内置的varImpPlot()函数绘制。但是,绘制的%IncMSE值与使用前面提到的方法(rf$importance)访问的结果不对应。
让我用一个例子来解释这个问题:
data(mtcars)
rf<-randomForest(mpg~ .,data=mtcars,importance=T,mtry=3)
rf$importance
varImpPlot(rf)
最大%IncMSE值为9.91 (disp),但在图上最大值约为14。用rf$importance访问的图上的所有其他值也不同。(注意IncNodePurity没有区别)
谁能解释一下这个?哪些值是正确的?正如我在评论中指出的那样,它们不相同的原因是因为varImpPlot
正在使用随机森林对象的importanceSD
组件绘制缩放值。这可以使用scale
参数来控制varImpPlot
。