很久之前,粉丝朋友问了3个关于决策树的问题,现在解答一下。
rpart包做回归树分析时,树图上第一层分裂的特征是最重要的嘛?不一定。
虽然直觉上我们会认为:越靠近根节点(即第一层分裂)的特征越重要,因为它是最早用来划分数据的变量。但在rpart中,“重要性”并不是仅由分裂层级决定的。
rpart的variable.importance是基于所有节点中该变量用于分裂所带来的损失函数减少量(如残差平方和RSS的下降)的加权总和来计算的。也就是说:
因此,第一层分裂的特征不一定是variable.importance最高的特征。
$了variable.importance得到的最高贡献度的特征与树图上得到结果不一致,这里贡献度最高的特征难道不是最重要的特征吗?这是完全正常的。
variable.importance:反映的是在整个树的所有分裂中,该变量对模型整体拟合效果的累计贡献。举个例子:
RSS减少了 10;RSS8和7,总贡献为15;variable.importance(B)=15>variable.importance(A)=10,尽管A是第一层分裂变量。所以,variable.importance更全面地衡量了“全局重要性”,而树图的第一层只是“局部第一步”。variable.importance更适合作为“特征重要性”的依据,尤其当你关心的是变量对整个模型预测能力的贡献时。
早期教学或简化解释中,常把“高层级 = 更重要”作为一种启发式规则,因为:
这种不一致是否与“局部最优”有关?
有一定关系,但不是直接原因。
variable.importance是基于实际构建出的树来计算的,所以它反映的是在这个局部最优树中的累计贡献,而不是理论上的“真实重要性”。如何解决或理解这种不一致?
variable.importance。医学和生信笔记,专注R语言在医学中的使用!

三连一下,感谢支持