首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >R tidymodels / VIP变量重要性确定

R tidymodels / VIP变量重要性确定
EN

Stack Overflow用户
提问于 2021-06-04 16:11:07
回答 1查看 599关注 0票数 0

通过tidymodel和R中的vip包,我计算了变量的重要性。代码方面,它看起来像这样:

代码语言:javascript
运行
复制
rf_vi_fit %>%
pull_workflow_fit() %>%
vip(geom = "point") + 
labs(title = "Random forest variable importance") 

从视觉上看,它看起来像这样:

然而,变量即兴实际上包含了什么?变量重要性可以基于多个指标,例如R平方的增益或基尼损失,但我不确定vip中的变量重要性是基于哪里的。我的其他预测的变量重要性值在3到4之间,而不是这个模型中的0.005。

我在vip()文档中也找不到变量重要性是基于什么的。

EN

回答 1

Stack Overflow用户

发布于 2021-06-05 14:35:10

您的问题的答案在vip文档https://cran.r-project.org/web/packages/vip/vip.pdf中的各个部分。

vip()函数是vi()的包装器,用于绘制变量重要性得分。在vip()文档中,...参数是“要传递给vi()的其他可选参数”。

vi()函数中,有一个名为method的参数。

方法=c(“模型”,“固定”,“置换”,“形状”)

指定要计算的变量重要性(VI)类型的字符串。当前选项包括:

"model“(默认值),用于特定型号的VI分数(有关详细信息,请参阅vi_model() )。

"firm",表示基于方差的VI分数(详情请参见vi_firm() )。

"permute",用于基于排列的VI分数(详情请参见vi_permute )。

"shap",表示基于Shapley的VI分数。

有关基于方差的方法的更多详细信息,请参阅Greenwell等人。(2018)和肖尔贝克等人。(2019)。

然后,如果您查看vi_models()的文档,它会详细描述每种型号特定于型号的VI分数。下面是描述RandomForest模型特定重要性的摘录。

随机森林通常提供两种不同重要性的度量。

第一个度量是根据排列的OOB (OOB)数据计算的:对于每个树,记录数据的OOB部分的预测误差(分类的错误率和回归的MSE )。然后,在排列每个预测变量之后执行相同的操作。然后,在森林中的所有树上对两者之间的差异进行平均,并通过差异的标准差进行归一化。如果变量的标准差等于0,则不进行除法(但在这种情况下,平均值几乎总是等于0)。有关详细信息,请参阅重要性,包括可以通过...论点。

第二个度量是通过对变量进行拆分而导致的节点杂质的总减少,在所有树上取平均值。对于分类,节点杂质通过基尼指数来衡量。对于回归,它是通过残差平方和来衡量的。有关详细信息,请参阅重要性。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67833723

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档