我试图了解如何充分理解决策树分类模型的决策过程。我要看的两个主要方面是树的图形表示和特性重要性列表。我不明白的是特性的重要性是如何在树的上下文中确定的。例如,下面是我的特性重要性列表:
特征排名: 1. FeatureA (0.300237)
然而,当我看到树的顶端时,它看起来是这样的:
事实上,一些被排列为“最重要”的特性直到树下更深的地方才会出现,而树的顶部是FeatureJ,它是排名最低的特性之一。我天真的假设是,最重要的特征将被排在树顶附近,从而产生最大的影响。如果这是不正确的,那么是什么使一个功能“重要”?
发布于 2018-08-29 08:14:57
不需要一个特性越重要,它在决策树上的节点就越高。
这仅仅是因为在这两种情况下(分裂与重要性)都可以使用不同的标准(例如基尼杂质、熵-信息增益、MSE等)。
例如,在SkLearn
,您可以选择根据熵-信息增益准则(参见criterion
& 'entropy'
at SkLearn
)对决策树上的节点进行拆分,而特征的重要性则由Gini重要性(即给定变量在随机林中的所有树中的Gini杂质的平均减少量)来表示(参见feature_importances_
at SkLearn
和这里)。
如果我是对的,在SkLearn
,即使您选择按照Gini杂质准则对决策树上的节点进行拆分,而特性的重要性是由基尼重要性赋予的,因为基尼杂质和基尼重要性并不相同(参见关于基尼重要性的这和这 )。
发布于 2017-02-02 13:28:47
在科学知识-学习特征的重要性是减少节点杂质。关键是它只在节点级别度量重要性。然后,根据到达该节点的样本数对所有节点进行加权。
因此,如果只有少数样本在第一次分裂后在左节点结束,这可能并不意味着J是最重要的特性,因为左节点上的增益可能只会影响很少的样本。如果您另外打印出每个节点中的样本数,您可能会更好地了解正在发生的事情。
发布于 2017-02-01 18:19:29
仅仅因为节点在树上较低并不一定意味着它就不那么重要了。中的特性重要性是通过一个节点如何将类分离出来(基尼指数)来计算的。你会注意到,即使是在你修剪过的树上,A也比J分裂了三倍,熵分数(与吉尼相似)在A节点上略高于J。
然而,如果您只能选择一个节点,您将选择J,因为这将导致最好的预测。但是,如果您可以选择让多个节点做出几个不同的决定,那么A将是最好的选择。
https://datascience.stackexchange.com/questions/16693
复制相似问题