繁体   English   中英

rpart 变量重要性显示的变量多于决策树图

[英]rpart variable importance shows more variables than decision tree plots

我使用 R 中的插入符号库在我的数据上安装了一个 rpart model 交叉验证。 一切都很好,但我想了解模型的变量重要性和决策树 plot 之间的区别。

使用 function varImp()调用变量重要性显示九个变量。 使用诸如fancyRpartPlot()rpart.plot()之类的函数绘制决策树显示了一个仅使用两个变量对所有主题进行分类的决策树。

怎么会这样? 为什么决策树 plot 没有从变量重要性表中显示相同的九个变量?

谢谢你。

变幅图

在此处输入图像描述

rpart()类似, Caret有一个很酷的属性:它处理代理变量,即未选择用于拆分但接近赢得竞争的变量。

让我更清楚。 假设在给定的拆分中,算法决定在 x1 上拆分。 假设还有另一个变量,比如 x2,它在那个阶段几乎和 x1 一样好。 我们称 x2 surrogate ,并像为 x1 所做的那样为其分配变量重要性。

通过这种方式,您可以获得实际上不用于拆分的重要性排名变量。 您还可以发现,这些变量比实际使用的其他变量更重要!

rpart()的文档中解释了这样做的基本原理:假设我们有两个相同的协变量,比如 x3 和 x4。 然后rpart()可能只在其中一个上拆分,例如 x3。 我们怎么能说 x4 不重要呢?

总而言之,变量重要性考虑了主要变量(即实际选择用于拆分的变量)和代理变量的拟合度增加。 因此,x1 的重要性考虑了选择 x1 作为拆分变量的拆分,以及选择了另一个变量但 x1 是紧密竞争者的拆分。

希望这能澄清你的疑惑。 有关更多详细信息,请参见此处 只是一个快速的报价:

以下方法可用于估计每个变量对 model 的贡献[谈到如何计算变量重要性]:

[...]

- 递归分区:每次拆分时归因于每个变量的损失 function(例如均方误差)的减少被制成表格并返回总和。 此外,由于可能存在重要但未在拆分中使用的候选变量,因此在每次拆分时也会列出最重要的竞争变量。 这可以使用 rpart.control 中的 maxcompete 参数关闭。

我不习惯caret ,但从这个引用看来,这样的 package 实际上使用rpart()来种植树木,从而继承了关于代理变量的属性。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM