Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R tidymodels/VIP变量重要性确定_R_Random Forest_Tidymodels_Vip - Fatal编程技术网

R tidymodels/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

通过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(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实际上没有指定。但我认为这是真的。当您使用默认设置时,它应该是:“杂质的平均减少(或基尼重要性)机制:在每棵树的每次分割时,分割标准的改进是归因于分割变量的重要性度量,并在林中的所有树上累积。”