一棵完全生长的决策树会面临一个很严重的问题,即过拟合。当模型过拟合进行预测时,在测试集上的效果将会很差。因此我们需要对决策树进行剪枝, 剪掉一些枝叶,提升模型的泛化能力。

决策树的剪枝通常有两种方法,预剪枝( Pre-Pruning )和后剪枝( Post-Pruning )。

预剪枝( Pre-Pruning )

预剪枝 , 即在生成决策树的过程中提前停止树的增长。核心思想是在树中结点进行扩展之前,先计算当前的划分是否能带来模型泛化能力的提升,如果不能,则不再继续生长子树。此时可能存在不同类别的样本同时存于结点中,按照多数投票的原则判断该结点所属类别。预剪枝对于何时停止决策树的生长有以下几种方法:

( 1 )当树到达一定深度的时候,停止树的生长。
( 2 )当到达当前结点的样本数量小于某个阈值的时候,停止树的生长。
( 3 )计算每次分裂对测试集的准确度提升,当小于某个阈值的时候 ,不再继续扩展。

预剪枝具有思想直接、算法简单、效率高等特点,适合解决大规模问题。 但如何准确地估计何时停止树的生长(即上述方法中的深度或阈值),针对不同问题会有很大差别,需要一定经验判断。且预剪枝存在一定局限性,高欠拟合的风险,虽然当前的划分会导致测试集准确率降低 , 但在之后的划分中,准确率可能会高显著上升。

后剪枝 ( Post-Pruning )

后剪枝,是在已经生成的过拟合决策树上进行剪枝,得到简化版的剪枝决策树。核心思想是让算法生成一棵完全生长的决策树,然后从最底层向上计算是否剪枝。剪枝过程将子树删除,用一个叶子结点替代,该结点的类别同样按照多数投票的原则进行判断。 同样地 ,后剪枝也可以通过在测试集上的准确率进行判断,如果剪枝过后准确率有所提升,则进行剪枝。 相比于预剪枝,后剪枝方法通常可以得到泛化能力更强的决策树,但时间开销会更大。

常见的后剪枝方法包括错误率降低剪枝( Reduced Error Pruning, REP )、悲观剪枝( Pessimistic Error Pruning, PEP )、代价复杂度剪枝( Cost Complexity Pruning, CCP )、最小误差剪枝( Minimum Error Pruning, MEP )、 CVP ( Critical Value Pruning )、 OPP ( Optimal Pruning )等方法,这些剪枝方法各有利弊,关注不同的优化角度。

总结

剪枝过程在决策树模型中占据着极其重要的地位。有很多研究表明 ,剪枝比树的生成过程更为关键。对于不同划分标准生成的过拟合决策树 ,在经过剪枝之后都能保留最重要的属性划分,因此最终的性能差距并不大 。 理解剪枝方法的理论, 在实际应用中根据不同的数据类型、规模,决定使用何种决策树以及对应的剪枝策略,灵活变通 ,找到最优选择。

决策树剪枝:预剪枝、后剪枝相关推荐

  1. 机器学习:决策树的预剪枝和后剪枝

    述概: 剪枝:在机器学习的决策树算法中,为防止过拟合现象和过度开销,而采用剪枝的方法,主要有预剪枝和后剪枝两种常见方法. 预剪枝:在决策树生成的过程中,预先估计对结点进行划分能否提升决策树泛化性能.如 ...

  2. 决策树——预剪枝和后剪枝

    一. 为什么要剪枝 1.未剪枝存在的问题 决策树生成算法递归地产生决策树,直到不能继续下去为止.这样产生的树往往对训练数据的分类很准确,但对未知的测试数据的分类却没有那么准确,即容易出现过拟合现象.解 ...

  3. 决策树_(预剪枝和后剪枝)_以判断西瓜好坏为例

    剪枝的目的: 剪枝的目的是为了避免决策树模型的过拟合.因为决策树算法在学习的过程中为了尽可能的正确的分类训练样本,不停地对结点进行划分,因此这会导致整棵树的分支过多,也就导致了过拟合.决策树的剪枝策略 ...

  4. 【机器学习入门】(4) 决策树算法理论:算法原理、信息熵、信息增益、预剪枝、后剪枝、算法选择

    各位同学好,今天我向大家介绍一下python机器学习中的决策树算法的基本原理.内容主要有: (1) 概念理解:(2) 信息熵:(3) 信息增益:(4) 算法选择:(5) 预剪枝和后剪枝. python ...

  5. 机器学习-预剪枝和后剪枝

    一棵完全生长的决策树会面临一个很严重的问题,即过拟合.当模型过拟合进行预测时,在测试集上的效果将会很差.因此我们需要对决策树进行剪枝, 剪掉一些枝叶,提升模型的泛化能力. 决策树的剪枝通常有两种方法, ...

  6. sklearn决策树怎么使用ccp_alpha进行剪枝

    本站原创文章,转载请说明来自<老饼讲解-机器学习>ml.bbbdata.com 目录 一.CCP后剪枝是什么 二.如何通过ccp_alpha进行后剪枝 (1) 查看CCP路径 (2)根据C ...

  7. 决策树的预剪枝与后剪枝

    前言: 本次讲解参考的仍是周志华的<机器学习>,采用的是书中的样例,按照我个人的理解对其进行了详细解释,希望大家能看得懂. 1.数据集 其中{1,2,3,6,7,10,14,15,16,1 ...

  8. 决策树剪枝的基本策略有预剪枝和后剪枝,请简述并分析两种剪枝策略

    1.决策树是一类常见的机器学习方法,是基于树结构进行决策的.一般的,一棵决策树包含两类结点:内部节点和叶结点,其中内部节点表示表示一个特征或属性,叶结点表示__决策结果____. 2.在决策树学习中, ...

  9. 【ML】决策树--剪枝处理(预剪枝、后剪枝)

    1. 剪枝(pruning)处理 首先,我们先说一下剪枝的目的--防止"过拟合". 在决策树的学习过程中,为了保证正确性,会不断的进行划分,这样可能会导致对于训练样本能够达到一个很 ...

最新文章

  1. 为什么多 TCP 连接比单 TCP 连接传输快
  2. 把握数据,驱动未来 | 清华大学大数据研究中心2020年RONG奖学金答辩会成功举办...
  3. MAC Android Studio| Error: The android gradle plugin version 3.0.0-alpha1 is too old
  4. 实例分析C语言中strlen和sizeof的区别
  5. tomcat jar包_tomcat学习|tomcat中的类加载器
  6. ai驱动数据安全治理_JupyterLab中的AI驱动的代码完成
  7. mardown 标题带数字_标题中带有数字的故事更成功吗?
  8. 清华大学2019计算机录取分数线,2019年清华大学各省各批次录取分数线
  9. ModuleNotFoundError: No module named 'CommandNotFound'
  10. phpcms父级调用二级子栏目名称和二级栏目文章 - 代码篇
  11. [树状数组][哈希]JZOJ 3240 Seat
  12. sublime text 3 插件推荐?
  13. 自动档汽车正确的操作方法和习惯---请教贴
  14. 队列管理器连接数设置_详解!基于Redis解决业务场景中延迟队列的应用实践,你不得不服啊...
  15. 第三季-第14课-有名管道通讯编程
  16. 数模(6):Leslie矩阵人口模型
  17. eclipse怎么将项目打包成jar文件
  18. 面向Java程序员的Scala教程
  19. LZX 定义 - 转帖
  20. 弘辽科技:淘宝店铺出现异常,卖家该如何应对?要注意些什么?

热门文章

  1. 面试官说我离高薪 offer 只差一个Redis入门,他是认真的
  2. 软件学院软件工程学费_为什么我不去软件工程学院
  3. 第二章nbsp;战争通论
  4. 光学系统常用光学参数的测量
  5. android 8 微信红包,微信安卓8.0已来,这个更新让iOS用户羡慕
  6. deepin中jre安装
  7. 五步快捷搭建大数据网站
  8. userdel 命令
  9. linux 安装SVN(http、https访问)
  10. 商汤实习面试准备(已上岸)