决策树系列(二)——剪枝

什么是剪枝?

剪枝是指将一颗子树的子节点全部删掉,根节点作为叶子节点,以下图为例:

为甚么要剪枝?

决策树是充分考虑了所有的数据点而生成的复杂树,有可能出现过拟合的情况,决策树越复杂,过拟合的程度会越高。

考虑极端的情况,如果我们令所有的叶子节点都只含有一个数据点,那么我们能够保证所有的训练数据都能准确分类,但是很有可能得到高的预测误差,原因是将训练数据中所有的噪声数据都”准确划分”了,强化了噪声数据的作用。

剪枝修剪分裂前后分类误差相差不大的子树,能够降低决策树的复杂度,降低过拟合出现的概率。

怎样剪枝?

两种方案:先剪枝和后剪枝

先剪枝说白了就是提前结束决策树的增长,跟上述决策树停止生长的方法一样。

后剪枝是指在决策树生长完成之后再进行剪枝的过程。这里介绍三种后剪枝方案:

(1)REP—错误率降低剪枝

顾名思义,该剪枝方法是根据错误率进行剪枝,如果一棵子树修剪前后错误率没有下降,就可以认为该子树是可以修剪的。

REP剪枝需要用新的数据集,原因是如果用旧的数据集,不可能出现分裂后的错误率比分裂前错误率要高的情况。由于使用新的数据集没有参与决策树的构建,能够降低训练数据的影响,降低过拟合的程度,提高预测的准确率。

(2)PEP—悲观剪枝

悲观剪枝认为如果决策树的精度在剪枝前后没有影响的话,则进行剪枝。怎样才算是没有影响?如果剪枝后的误差小于剪枝前经度的上限,则说明剪枝后的效果与剪枝前的效果一致,此时要进行剪枝。

进行剪枝必须满足的条件:

其中:

表示剪枝前子树的误差;

表示剪枝后节点的误差;

两者的计算公式如下:

                                   

令子树误差的经度满足二项分布,根据二项分布的性质, , ,其中 ,N为子树的数据量;同样,叶子节点的误差

上述公式中,0.5表示修正因子。由于子节点是父节点进行分裂的结果,从理论上讲,子节点的分类效果总比父节点好,分类的误差更小,如果单纯通过比较子节点和父节点的误差进行剪枝就完全没有意义了,因此对节点的误差计算方法进行修正。修正的方法是给每一个节点都加上误差修正因子0.5,在计算误差的时候,子节点由于加上了误差修正因子,就无法保证总误差低于父节点。

算例:

由于 ,所以应该进行剪枝。

(3)CCP—代价复杂度剪枝

代价复杂度选择节点表面误差率增益值最小的非叶子节点,删除该非叶子节点的左右子节点,若有多个非叶子节点的表面误差率增益值相同小,则选择非叶子节点中子节点数最多的非叶子节点进行剪枝。

可描述如下:

令决策树的非叶子节点为

a) 计算所有非叶子节点的表面误差率增益值

b)选择表面误差率增益值最小的非叶子节点(若多个非叶子节点具有相同小的表面误差率增益值,选择节点数最多的非叶子节点)。

c)对选中的非叶子节点进行剪枝

表面误差率增益值的计算公式:

其中:

表示叶子节点的误差代价, , 为节点的错误率, 为节点数据量的占比;

表示子树的误差代价, 为子节点i的错误率,  表示节点i的数据节点占比;

表示子树节点个数。

算例:

下图是决策树A的其中一颗子树,决策树的总数据量为40。

该子树的表面误差率增益值可以计算如下:

求出该子树的表面错误覆盖率为 1/40,只要求出其他子树的表面误差率增益值就可以对决策树进行剪枝.

转自:https://www.cnblogs.com/yonghao/p/5064996.html

决策树系列(二)——剪枝相关推荐

  1. 决策树(decision tree)(二)——剪枝

    决策树(decision tree)(二)--剪枝 **注:本博客为周志华<机器学习>读书笔记,虽然有一些自己的理解,但是其中仍然有大量文字摘自周老师的<机器学习>书. 决策树 ...

  2. 大白话5分钟带你走进人工智能-第二十六节决策树系列之Cart回归树及其参数(5)...

                                                    第二十六节决策树系列之Cart回归树及其参数(5) 上一节我们讲了不同的决策树对应的计算纯度的计算方法, ...

  3. 人工智能算法通俗讲解系列(二):逻辑回归

    2019独角兽企业重金招聘Python工程师标准>>> 今天,我们介绍的机器学习算法叫逻辑回归.它英语名称是Logistic Regression,简称LR. 跟之前一样,介绍这个算 ...

  4. 微服务架构系列二:密码强度评测的实现与实验

    本文是继<微服务架构系列一:关键技术与原理研究>的后续,系列一中论述了微服务研究的背景和意义,主要调研了传统架构的发展以及存在的问题和微服务架构的由来,然后针对微服务架构的设计原则.容器技 ...

  5. gini系数 决策树_决策树系列--ID3、C4.5、CART

    决策树系列,涉及很好算法,接下来的几天内,我会逐步讲解决策树系列算法 1.基本概念 首先我们理解什么是熵:熵的概念最早源于物理学,用于度量一个热力学系统的无序程度.在信息论里面,信息熵是衡量信息量的大 ...

  6. 大白话5分钟带你走进人工智能-第二十二节决策树系列之概念介绍(1)

                                                                第二十二节决策树系列之概念介绍(1) 本系列我们讲一个新算法及其衍生出来的系列算 ...

  7. 大白话5分钟带你走进人工智能-第二十四节决策树系列之分裂流程和Gini系数评估(3)...

     第二十四节决策树系列之分裂流程和Gini系数评估(3) 上一节中我们讲解了决策树的数学表达形式,本节的话我们讲解决策树的分裂流程以及分裂条件的评估.我们基于决策树的递归表达式上:           ...

  8. 决策树及决策树生成与剪枝

    文章目录 1. 决策树学习 2. 最优划分属性的选择 2.1 信息增益 - ID3 2.1.1 什么是信息增益 2.1.2 ID3 树中最优划分属性计算举例 2.2 信息增益率 - C4.5 2.3 ...

  9. 决策树(二)——决策树的生成

    说明:这篇博客是看李航老师的<统计学习方法>的笔记总结,博客中有很多内容是摘选自李航老师的<统计学习方法>一书,仅供学习交流使用. 决策树的生成 在上一篇博客决策树(一)--构 ...

  10. 搜索引擎ElasticSearchV5.4.2系列二之ElasticSearchV5.4.2+kibanaV5.4.2+x-packV5.4.2安装

    相关博文: 搜索引擎ElasticSearchV5.4.2系列一之ES介绍 搜索引擎ElasticSearchV5.4.2系列二之ElasticSearchV5.4.2+klanaV5.4.2+x-p ...

最新文章

  1. VBA实战技巧精粹012:查找指定目录下的指定文件及Dir函数用法
  2. Linux网站架构系列之Mysql----部署篇
  3. cmfclistctrl怎么设置某列文字颜色_ppt实用技巧:如何轻松设置合意的超链接
  4. 深入理解JavaScript闭包(closure) 【收藏】
  5. 2021年算法工作总结
  6. OpenCV-Python图像处理教程(源码及素材)
  7. 我的成长(四)---看书
  8. Netlink 0007 --- 创建实现分析
  9. j2me游戏改成android,将j2me移植成android
  10. C语言程序设计C语言之父,C语言程序设计(C语言之父着).pdf
  11. 开源项目推荐:基于Qt开发的远程桌面监控和文件传输软件Aspia
  12. 小提琴1234567位置图解_小提琴1234567位置图解 那就随便拉了啊反正是玩嘛~怎
  13. 平安保险php软件工程师工资,软件工程师
  14. linux临时文件放哪,如何保障Linux的临时文件安全?
  15. iOS城市选择器-包含搜索功能
  16. 不同系统下的shell的不同_不同地区不同气候条件下杉木成材时间的区别
  17. SD卡变成RAW格式怎么办?SD卡RAW格式的解决办法
  18. FineReport(帆软)关于柱状图数据标签被遮挡的问题处理
  19. Cisco 新兴网络技术考试答案
  20. javascript:幂指数运算符

热门文章

  1. ubuntu安装 VMware Tools
  2. 如何复制网上的收费文本
  3. 计算机系统的组成和应用,计算机系统组成与应用领域的考点
  4. opencv 把3通道图像转成单通道_【3】OpenCV图像处理模块(4)图像腐蚀与膨胀
  5. python爬虫进程和线程的区别_Python爬虫 | 多线程、多进程、协程
  6. linux夸分区建立软链接,Linux硬链接和软链接
  7. ElementUI:nav收起后点击后出现黑色边框
  8. 谷粒商城:15.商城业务 — 商品上架
  9. z blog php版本怎么样,Z-BlogPHP版本可能用到的SQL语句整理
  10. 论文笔记_S2D.63_2020-ICRA_LiStereo:从雷达和双目立体图像生成稠密深度图