【理论篇】决策树剪枝策略

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了【理论篇】决策树剪枝策略相关的知识,希望对你有一定的参考价值。

参考技术A

首先,我们来思考一个问题:决策树为什么要进行剪枝呢?试想一下,如果决策树足够庞大,无限分裂下去,直到每个叶子节点的熵值都为 0 。

这个时候,分类结果没有不确定性,100%准确。这样的决策树最终的结果就是训练集表现非常完美,测试集表现非常糟糕。因此,我们说决策树过拟合的风险很大,理论上可以完全分得开数据。

决策树的剪枝策略包括预剪枝和后剪枝。

预剪枝是指边建立决策树边进行剪枝的操作,也是我们实际决策树训练时更常用的方法,更实用。

常见的预剪枝策略有:限制深度、叶子节点个数、叶子节点样本数、信息增益量等。下面,小鱼拿下面的决策树举例,为大家分别做个简单的解释。

限制深度
通过限制深度可以阻止决策树继续向下无限的分裂。比如,上图中,我们限制决策树深度为 3 ,则到达第三层时就全部是叶子节点而不会继续向下分裂了。

叶子节点个数
通过限制决策树最多只能包含多少个叶子节点来限制无限分裂。比如,上图中,我们限制叶子节点个数最多为 4 个,则达到 4 个叶子节点之后,就要停止分裂了。

叶子节点样本数
限制每个叶子节点至少包含多少个样本个数,因为决策树理论上可以分裂到每个叶子节点只有一个样本的野蛮状态。比如,上图中我们可以通过限制每个叶子节点至少包含 1095 个样本,那最右侧的叶子节点就不能继续向下分裂了,到此为止。

信息增益量
通过信息增益量预剪枝具体指某个叶子节点分裂前,其信息增益为 G1,继续分裂后,信息增益变为了 G2,如果 G1 - G2 的值非常小,那就该节点就没必要继续分裂了。

当建立完决策树之后,再来进行剪枝操作。后剪枝策略实际使用的非常少,我们了解即可。

厚剪枝的实现依赖于如下的衡量标准:

上述公式,等式左侧代表最终损失,我们希望决策树最终损失越小越好。等式右侧分别为当前结点的熵或 Gini 系数,参数 α 由用户指定, Tleaf 当前结点分裂后,产生的叶子节点个数。叶子节点越多,损失越大。

下面,小鱼以如下的决策树为例,说明后剪枝策略中的损失函数如何计算。

图中,红色节点在分列前的损失为: 0.4444 * 6 + α ;分裂后的损失需要计算左子树(蓝色)和右子树(绿色)的 gini 系数之和: 0*3 + 0.4444*3 + α*2 。

以上就是决策树剪枝策略的所有内容啦~其中,前剪枝策略是需要我们重点掌握的。

学习笔记 | 机器学习 决策树

文章目录

通过这篇博客,您将收获如下知识:

  • 熟悉决策树相关的基础知识:自信息、信息熵与条件熵,信息增益和增益率,Gini 值和 Gini 指数。
  • 熟悉决策树算法的关键原理,模型、策略与优化算法。
  • 了解决策树中过拟合问题和剪枝处理,以及 sklearn 中决策树模型中剪枝相关的参数说明。
  • 了解决策树连续值和缺失值的处理思路
  • 了解决策树算法的优缺点

一、算法原理

决策树(Decision Tree) 是一种重要的有监督的机器学习方法。决策树有时候是指学习方法,有时是指学得的树,核心是为了模拟人类决策过程。以二分类任务为例,我们希望从给定训练数据集学得一个模型

以上是关于【理论篇】决策树剪枝策略的主要内容,如果未能解决你的问题,请参考以下文章

机器学习决策树理论第二卷

决策树算法

学习笔记 | 机器学习 决策树

学习笔记 | 机器学习 决策树

机器学习速成宝典模型篇08支持向量机SVM(附python代码)

小谈剪枝研究