决策树-树枝裁剪

树枝裁剪-后修剪

顾名思义,修剪发生在生成一棵树后(并且在没有下文所述的提前停止的情况下),它可能会过拟合。 CART算法将反复将数据划分为越来越小的子集,直到这些最终子集在结果变量方面是同质的为止。实际上,这通常意味着最终的子集(称为树的叶子)每个仅包含一个或几个数据点。树已经准确地学习了数据,但是可能无法很好地预测出非常微小的新数据点。

我将考虑2种修剪策略,

最小误差。将树修剪回交叉验证的误差最小的点。交叉验证是使用大多数数据构建一棵树,然后使用数据的其余部分来测试决策树的准确性的过程。

最小的树。该树的修剪程度比最小错误略大。从技术上讲,修剪会创建一个决策树,该树的交叉验证误差在最小误差的1个标准误差之内。较小的树更易于理解,但代价是误差会有所增加。

Reduced Error Pruning
这种方法由Quinlan提出。这是决策树修剪中最简单,最容易理解的方法。该方法认为树中的每个决策节点都是修剪的候选,包括删除以该节点为根的子树,使其成为叶节点。可用数据分为三个部分:

训练示例
用于修剪树的验证示例
以及一组测试示例

用于提供对将来看不见的示例的准确性的无偏估计。如果新树的错误率等于或小于原始树的错误率,并且该子树不包含具有相同属性的子树,则将子树替换为叶节点,这意味着修剪已完成。否则不要修剪它。这种方法的优点是线性计算复杂度。当测试集比训练集小得多时,该方法可能会导致过度修剪。许多研究人员发现,就准确性而言,减少错误修剪的效果与大多数其他修剪方法一样,并且在树大小方面优于大多数修剪方法

Minimum Error pruning
此方法由Niblett和Brotko开发。 这是一种自下而上的方法,它寻求一棵目标树,该树将对独立数据集的预期错误率最小化。 如果预计所有将来的示例都将在c类中,则使用以下等式预测节点t处的预期修剪错误率:
在这里插入图片描述

  1. 在树中的每个非叶节点上,如果修剪了该子树,就要计算预期的错误率。

  2. 如果未修剪子树,则计算该节点的预期错误率。

  3. 如果修剪节点导致更大的预期错误率,则保留子树; 否则,将其修剪。

提前停止或预修剪

防止过度拟合的另一种方法是,在生成带有很小样本的叶子之前,尽早停止树木的构建过程。这种启发式方法称为早期停止,但有时也称为预修剪决策树。

在分割树的每个阶段,我们都会检查交叉验证错误。如果错误减少的幅度不够大,则我们停止。提前停止可能会因过早停止而导致不适。当前的分割可能没有什么好处,但是在进行分割之后,后续的分割会大大减少错误。

提前停止和修剪可以一起使用,也可以分开使用,或者根本不使用。修剪后的决策树在数学上更加严格,找到的树至少与早期停止一样好。提前停止是一种快速解决方案。

如果与修剪一起使用,尽早停止可以节省时间。毕竟,为什么要建一棵树,然后再修剪一下呢?

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值