决策树 - 决策树如何在每个节点上选择规则

Posted

技术标签:

【中文标题】决策树 - 决策树如何在每个节点上选择规则【英文标题】:Decision Tree - How does decision tree select rules on each node 【发布时间】:2019-01-28 08:16:16 【问题描述】:

我正在学习机器学习中的决策树算法

我可以从教程中了解到,决策树在每个节点上计算信息增益,并据此确定节点的最佳属性。

但我无法得到的是它如何为每个节点定义最佳规则。

假设年龄是否是特定节点的最佳属性。在那种情况下,如果决策树选择规则年龄 > 50,那么我的问题是这个规则是怎么来的?

还请解释以下内容:

决策树在每个级别将数据划分为同质子集。

【问题讨论】:

建议您查看有关决策树的优秀教程,such as this one。 【参考方案1】:

在每个节点,拆分函数选择特征和该特征的值(拆分记录的位置),从而最小化两个记录子集的成本。因此,它同时选择特征和值。成本函数取决于设置、分类或回归,但例如可能是熵,请注意,最小化熵等同于最大化信息增益(正如您在问题中描述的那样)。

更直观地说,目标是创建最纯粹的记录子集,即每个子集包含尽可能多的样本,只属于一个类。另一种说法是子集应该尽可能同质或尽可能纯。

有关更多详细信息,任何关于机器学习的介绍性教科书都是一个很好的起点,请参阅例如Introduction to Statistical Learning Tibshirani 和 Hastie 等人。

【讨论】:

那么,这意味着它会遍历特定属性的所有可能值以找到最佳规则吗?它适用于所有节点和属性? 可以通过为每个特征获取唯一的观察值(而不是所有可能的值)来获得用于分割数据的阈值集。【参考方案2】:

基本上,有两个主要步骤。首先,特征选择是下一次分割的最佳候选(使用例如基尼指数或熵)。其次,您计算拆分前后的信息增益,并希望获得最大增益(您可以使用贪心方法)。

有一系列关于决策树的不错的文章,其中还讨论了优点和局限性,Decision Trees. Decoded。

【讨论】:

以上是关于决策树 - 决策树如何在每个节点上选择规则的主要内容,如果未能解决你的问题,请参考以下文章

决策树分类算法小结

决策树的特征重要性提取(scikit-learn)

如何从每个节点提取sklearn决策树规则到pandas布尔条件?

决策树

机器学习实战-决策树

决策树方法的基本思想是啥