R tidymodels/VIP变量重要性确定
通过tidymodels和R中的vip包,我计算了变量的重要性。在代码方面,它将如下所示:R tidymodels/VIP变量重要性确定,r,random-forest,tidymodels,vip,R,Random Forest,Tidymodels,Vip,通过tidymodels和R中的vip包,我计算了变量的重要性。在代码方面,它将如下所示: rf_vi_fit %>% pull_workflow_fit() %>% vip(geom = "point") + labs(title = "Random forest variable importance") 从视觉上看,它看起来像这样: rf_vi_fit %>% pull_workflow_fit() %>% vip(ge
rf_vi_fit %>%
pull_workflow_fit() %>%
vip(geom = "point") +
labs(title = "Random forest variable importance")
从视觉上看,它看起来像这样:
rf_vi_fit %>%
pull_workflow_fit() %>%
vip(geom = "point") +
labs(title = "Random forest variable importance")
然而,变量重要性实际上意味着什么?可变重要性可以基于多个指标,例如R平方增益或基尼损失,但我不确定vip的可变重要性基于何处。我的其他预测值的重要性在3到4之间,而不是这个模型中的0.005
我在vip()文档中也找不到变量重要性的依据。vip文档中的各个部分给出了您的查询答案
vip()
函数是vi()
的包装器,用于绘制变量重要性分数。在vip()
文档中,..
参数是“要传递给vi()
的附加可选参数”
在vi()
函数中,有一个名为method
的参数
方法=c(“模型”、“固定”、“排列”、“形状”)指定要计算的变量重要性(VI)类型的字符串。当前选项为:
“模型”(默认值),用于模型特定的VI分数(有关详细信息,请参见
VI_model()
。“公司”,用于基于方差的VI分数(有关详细信息,请参见
VI_firm()
详细信息)。
“排列”,用于基于排列的VI分数(有关详细信息,请参见VI_permute
。
“shap”,用于基于Shapley的VI分数。
有关基于方差的方法的更多详情,请参见Greenwell等人(2018年)和Scholbeck等人(2019年)
然后,如果您查看vi_models()
的文档,它将详细描述每种模型的特定于模型的vi分数。下面是描述随机森林模型特殊重要性的摘录
随机林通常提供两种不同重要性的度量。
第一个测量值是从排列出袋(OOB)数据计算出来的:对于每棵树,记录数据OOB部分的预测误差(分类的误差率和回归的MSE)。然后,在排列每个预测变量之后也会执行相同的操作。然后对森林中的所有树木计算两者之间的差值的平均值,并通过差值的标准偏差进行归一化。如果变量差异的标准偏差等于0,则不进行除法(但在这种情况下,平均值几乎总是等于0)。有关详细信息,请参见重要性,包括可以通过。。。参数。
第二个度量是在所有树上求平均值,从变量上拆分节点杂质的总减少量。对于分类,节点杂质通过基尼指数测量。对于回归,它是通过残差平方和来测量的。有关详细信息,请参见重要性
关于您的询问,请参阅vip文档的各个部分
vip()
函数是vi()
的包装器,用于绘制变量重要性分数。在vip()
文档中,..
参数是“要传递给vi()
的附加可选参数”
在vi()
函数中,有一个名为method
的参数
方法=c(“模型”、“固定”、“排列”、“形状”)
指定要计算的变量重要性(VI)类型的字符串。当前选项为:
“模型”(默认值),用于模型特定的VI分数(有关详细信息,请参见VI_model()
。
“公司”,用于基于方差的VI分数(有关详细信息,请参见VI_firm()
详细信息)。
“排列”,用于基于排列的VI分数(有关详细信息,请参见VI_permute
。
“shap”,用于基于Shapley的VI分数。
有关基于方差的方法的更多详情,请参见Greenwell等人(2018年)和Scholbeck等人(2019年)
然后,如果您查看vi_models()
的文档,它将详细描述每种模型的特定于模型的vi分数。下面是描述随机森林模型特殊重要性的摘录
随机林通常提供两种不同重要性的度量。
第一个测量值是从排列出袋(OOB)数据计算出来的:对于每棵树,记录数据OOB部分的预测误差(分类的误差率和回归的MSE)。然后,在排列每个预测变量之后也会执行相同的操作。然后对森林中的所有树木计算两者之间的差值的平均值,并通过差值的标准偏差进行归一化。如果变量差异的标准偏差等于0,则不进行除法(但在这种情况下,平均值几乎总是等于0)。有关详细信息,请参见重要性,包括可以通过。。。参数。
第二个度量是在所有树上求平均值,从变量上拆分节点杂质的总减少量。对于分类,节点杂质通过基尼指数测量。对于回归,它是通过残差平方和来测量的。有关详细信息,请参见重要性
当您使用默认设置时,它应该是:“杂质的平均减少(或基尼重要性)机制:在每棵树的每次分割时,分割标准的改进是归因于分割变量的重要性度量,并针对每个变量分别在林中的所有树上累积。”来源:奇怪的是,Tidymodels实际上没有指定。但我认为这是真的。当您使用默认设置时,它应该是:“杂质的平均减少(或基尼重要性)机制:在每棵树的每次分割时,分割标准的改进是归因于分割变量的重要性度量,并在林中的所有树上累积。”