[英]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.