r-如何从潮汐模型游侠对象中获得变量/特征重要性



我有一个来自tidymodels rand_forest函数的ranger对象:

rf <- rand_forest(mode = "regression", trees = 1000) %>% fit(pay_rate ~ age+profession)

我想得到每个变量的特征重要性(我有比这个例子更多的(。我尝试过rf$variable.importanceimportance(rf)之类的函数,但前者返回NULL,而后者不存在。我尝试使用vip包,但这对ranger对象不起作用。如何从该对象中提取特征重要性?

为ranger设置引擎时,需要添加importance = "impurity"。这将提供可变的重要性分数。设置后,可以使用extract_fit_parsnipvip来绘制变量重要性。

小示例:

library(tidymodels)
library(vip)
rf_mod <- rand_forest(mode = "regression", trees = 100) %>% 
set_engine("ranger", importance = "impurity")

rf_recipe <- 
recipe(mpg ~ ., data = mtcars) 
rf_workflow <- 
workflow() %>% 
add_model(rf_mod) %>% 
add_recipe(rf_recipe)

rf_workflow %>% 
fit(mtcars) %>% 
extract_fit_parsnip() %>% 
vip(num_features = 10)

更多信息可在花絮模型入门指南中获得

最新更新