决策树(二)——决策树的剪枝(预剪枝和后剪枝)

什么是决策树的剪枝?

对比日常生活中,环卫工人在大街上给生长茂密的树进行枝叶的修剪。在机器学习的决策树算法中,有对应的剪枝算法。将比较复杂的决策树,化简为较为简单的版本,并且不损失算法的性能。

为什么要剪枝?

剪枝是决策树算法防止过拟合的一种手段,因为在学习过程中,决策树根据训练样本进行拟合,生成了针对于训练数据集精确性极高的模型。但是训练数据集,不可避免是一种有偏的数据。
所以我们为了提高决策树的泛化性能,采取了剪枝的策略。使得决策树不那么对于训练数据精确分类,从而适应任何数据。

剪枝策略的分类

剪枝算法可以分为:预剪枝和后剪枝

预剪枝

预剪枝就是在决策树生成过程中,在每次划分时,考虑是否能够带来决策树性能的提升。

  1. 如果可以提升决策树的性能则会进行划分。
  2. 如果不能则会停止生长。

一般的方法有如下几种:

  1. 当树的深度达到一定的规模,则停止生长。
  2. 达到当前节点的样本数量小于某个阈值的时候。
  3. 计算每次分裂对测试集的准确性提升,当小于某个阈值,或不再提升甚至有所下降时,停止生长。
  4. 当信息增益,增益率和基尼指数增益小于某个阈值的时候不在生长。

优缺点

优点:思想简单,算法高效,采用了贪心的思想,适合大规模问题。
缺点:提前停止生长,有可能存在欠拟合的风险。

后剪枝

后剪枝是先从训练集生成一颗完整的决策树,然后自底向上的对决策树进行剪枝,与预剪枝最大的不同就是:
决策树是否生长完整。

决策树的生成是学习局部的模型,后剪枝则是学习整体的模型。

后剪枝算法的分类

  1. 错误率降低剪枝(REP)
  2. 悲观剪枝(PEP)
  3. 代价复杂度剪枝(CCP)
  4. 最小误差剪枝(MEP)
  5. CVP (Critical Value Pruning)
  6. OPP (Optimal Pruning)

本文以西瓜书为例,错误率降低剪枝(REP)。

将数据分为训练集和测试集,用训练集去生成一颗完整的决策树,用测试集去剪枝。

该算法将树上的每个节点都作为剪枝的候选对象,通过如下步骤进行剪枝操作:
step1:删除以此节点为根节点的树,
step2:使其成为叶子结点,赋予该节点最常见的分类
step3:对比删除前和删除后的性能是否有所提升,如果有则进行删除,没有则保留。

优缺点

优点:可以最大限度的保留树的各个节点,避免了欠拟合的风险。
缺点:相较于预剪枝的时间开销巨大。

奥卡姆剃刀定律

奥卡姆剃刀是一种思想,在效果相同,性能一致的情况下,模型越简单越好。在简直过程中,若复杂的决策树和简答的决策树的性能相同则优先选择结构简单的决策树。

预告andTODO

1.决策树的连续与缺失值的处理
2.Bagging——随机森林
3.Boosting——Adamboost,GBDT,Xgboost

Reference

[1] 《机器学习》 p79-p83
[2] 《百面机器学习》p67-p68
[3] https://www.cnblogs.com/starfire86/p/5749334.html

  • 4
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值