在功能重要性的上下文中解释决策树


9

我试图了解如何完全理解使用sklearn构建的决策树分类模型的决策过程。我要看的2个主要方面是树的graphviz表示形式和功能重要性列表。我不了解的是如何在树的上下文中确定功能的重要性。例如,这是我的功能重要性列表:

功能排名:1. FeatureA(0.300237)

  1. FeatureB(0.166800)

  2. FeatureC(0.092472)

  3. 精选(0.075009)

  4. FeatureE(0.068310)

  5. FeatureF(0.067118)

  6. FeatureG(0.066510)

  7. FeatureH(0.043502)

  8. FeatureI(0.040281)

  9. FeatureJ(0.039006)

  10. FeatureK(0.032618)

  11. FeatureL(0.008136)

  12. FeatureM(0.000000)

但是,当我查看树的顶部时,它看起来像这样:树段

实际上,某些排名为“最重要”的要素要到树下很远时才会出现,而树的顶部是FeatureJ,这是排名最低的要素之一。我天真的假设是,最重要的功能将排在树的顶部附近,以产生最大的影响。如果那是不正确的,那么什么使功能“重要”?


1
第一个节点的左侧和右侧分配了多少个样本?
oW_

Answers:


4

一个功能越重要,那么它在决策树上的节点就越高。

这仅仅是因为在这两种情况中的每种情况下(分裂与重要性)都可以使用不同的标准(例如,基尼杂质,熵信息增益,MSE等)。

例如,SkLearn您可以根据熵信息增益标准(请参阅criterion'entropy'SkLearn)选择在决策树上对节点进行拆分,而要素的重要性由基尼重要性给出,这是基尼的平均降低给定变量在随机森林的所有树中的杂质(请参阅feature_importances_at SkLearnhere)。

如果我是正确的话,SkLearn即使您选择根据基尼不纯准则在决策树上拆分节点,这同样适用,而功能的重要性由基尼重要性提供,因为基尼杂质和基尼重要性并不相同(另见#2约基尼重要性)。


@oW_已经对原始问题给出了一个相当正确的答案,但是我认为以一种更简洁明了的方式写给读者是很好的。
弃儿

3

在scikit-learn中,功能的重要性在于节点杂质的减少。关键是它仅在节点级别衡量重要性。然后,通过有多少样本到达该节点来对所有节点进行加权。

因此,如果在第一次拆分之后只有几个样本最终出现在左节点,则这并不意味着J是最重要的功能,因为左节点上的增益可能只会影响很少的样本。如果您另外打印出每个节点中的样本数量,则可能会更好地了解正在发生的情况。


2

仅仅因为树上的节点较低并不意味着它的重要性就不那么重要了。sci-kitlearn中功能的重要性是通过节点将类分离的纯粹程度(Gini索引)来计算的。您甚至会注意到,即使在裁剪好的树中,A也要比J分裂三倍,并且A节点中的熵得分(与Gini相似的纯度度量)也比J高。

但是,如果您只能选择一个节点,则将选择J,因为这将导致最佳的预测。但是,如果您可以选择让许多节点做出几个不同的决定,那么A将是最佳选择。


因此,以通俗易懂的术语来说,假设只有2种可能的分类(我们将其称为0和1),则树根的特征将是将样本最好地分为2个组的特征(即,最好的划分工作) 1放在树的一侧,0放在另一侧)。准确吗?如果在这种情况下不是最能区分0和1的地方,我仍然不太清楚功能等级的重要性
Tim Lindsey

-2

通过删除变量时模型准确性的降低来衡量变量的重要性。使用不带变量的新模型创建的新决策树可能看起来与原始树非常不同。在考虑模型中的所有变量的同时,完成了图中的拆分决策。

在根(和其他节点)处拆分的变量由杂质测量。良好的纯度(例如:左分支中的所有对象都具有相同的目标值)不能保证良好的准确性。您的数据可能偏斜,右分支的响应比左分支更多。因此,仅对左分支正确分类是没有好处的,我们还需要考虑右分支。因此,对于整体模型的准确性,分割变量可能不是重要变量。

变量重要性是变量选择的更好方法。


2
我不认为这是在scikit-learn中实现的方式。在那里,特征重要性被测量为“基尼重要性”,即节点杂质的总减少量由到达该节点的样本比例加权。
oW_

“特征的重要性被计算为该特征带来的标准的(归一化)总缩减。这也被称为基尼重要性。” - scikit-learn.org/stable/modules/generated/...
灵感
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.