繁体   English   中英

插入符号随机森林回归的变量重要性

[英]Variable Importance for Caret Random Forest Regression

我很难理解 RF 回归插入符号中特征重要性分数的确切含义。 如您所知,RF 有许多潜在的重要性度量。 但是,没有明确的指示使用哪一种。

这是一个玩具示例:


data(iris)


y_train = iris['Sepal.Length']
X_train = iris[2:4]

mdl_rf_inner <- caret::train(X_train, y_train$Sepal.Length, method = "rf",
                             preProcess = c("center", "scale"),
                             ntrees = 1000, importance = T)

feat_imp_2 <- caret::varImp(mdl_rf_inner, scale=F)

导致:

rf variable importance

             Overall
Petal.Length   48.51
Sepal.Width    23.67
Petal.Width    17.15

请记住,我预测的是萼片长度,所以尽管使用了 iris 数据,但它是一个回归问题。 我阅读了文档,并没有明确指示正在计算哪个变量的重要性(基尼杂质减少?,mse减少?,排列重要性?,袋子外?等等)。

更复杂的是,火车 function 还具有重要性 = T 参数,在使用 varImp() 时似乎并没有明确的目的。 那是对的吗?

我将非常感谢您对此的见解。

最好的祝愿!

如果您阅读了 varImp (?varImp) 的帮助手册:

*Random Forest*: ‘varImp.randomForest’ and ‘varImp.RandomForest’
are wrappers around the importance functions from the
‘randomForest’ and ‘party’ packages, respectively.

它有效地做的是在你的最终 model 上使用 randomForest 中的重要性() function 给你:

randomForest::importance(mdl_rf_inner$finalModel)
             %IncMSE IncNodePurity
Sepal.Width  26.96516      8.014371
Petal.Length 44.64568     64.381750
Petal.Width  18.27348     27.448665

与之比较:

caret::varImp(mdl_rf_inner, scale=FALSE)
rf variable importance

             Overall
Petal.Length   44.65
Sepal.Width    26.97
Petal.Width    18.27

它是由他们各自的 SD 缩放的 %IncMSE。 您可以从 randomForest::importance 的帮助页面了解更多信息。

对于%IncMSE ,您需要在运行 randomForest model 时指定importance=TRUE

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM