摘要:决策树剪枝策略:先剪枝、后剪枝,用于解决过拟合问题。

本文分享自华为云社区《浅析决策树的生长和剪枝》,原文作者:chengxiaoli。

决策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。由于这种决策分支画成图形很像一棵树的枝干,故称决策树。在机器学习中,决策树是一个预测模型,他代表的是对象属性与对象值之间的一种映射关系,它是一种监督学习。

一.决策树模型

首先说明下什么是决策树呢?决策树是一个类似流程图的树结构:每个内部节点(分支节点/树枝节点)表示一个特征或属性,每个树叶节点代表一个分类。

在决策树的生长过程中主要会存在的问题是:对于选择分支节点的主观性较强。解决办法:利用信息熵或信息增益解决因为人主观判断问题,只需要计算信息熵或信息增益再排序从而正确分类的过程。

信息增益的含义 :划分数据集前后信息发生的变化。

熵:物理学中指物体能量的分布均匀情况,信息熵:对信息的不确定性的度量:公式:H(x)=-sum(plog(p))。信息熵越小,不确定性越小,确定性越大,信息的纯度越高。H(D)是数据集D的熵,计算公式:

Ck是在数据集D中出现k类的数量,N是样本的数量,类别的总数。H(D|A) 是特征A对与数据集D的条件熵,其意义是:在子集Di中Y的分布。计算方法是:

GainA(A的信息增益)=H_All(总体的信息熵)-H(A)(以A节点作为划分节点的信息熵)决策树中分支节点选择:信息增益大的作为分支节点信息增益越大,信息熵越小,信息不确定性越小,确定性越大,纯度越高。综合之后信息增益的公式:

特征A对训练集D的信息增益比gR(D,A)定义为

HA(D)刻画了特征A对训练集D的分辨能力,信息增益率改进由于信息增益偏向特征取值较多的不足之处,使用信息增益率进一步划分决策树。

以上决策算法:ID3算法-信息增益、C4.5算法-信息增益率。决策树剪枝策略: 先剪枝、后剪枝,用于解决过拟合问题。

二.ID3和C4.5划分策略

ID3和C4.5算法的划分思想:根据信息增益或信息增益率选择构建决策树的分支节点,依次递归建树。

决策树构建的基本步骤:

(1)如果所有的属性都被用于划分,直接结束;

(2)计算所有特征的信息增益或信息增益率,选择信息增益较大的(如a节点)值对应的特征进行分类;

(3)如果使用a节点作为划分节点没有划分完成,接下来使用除去a节点之外的其他特征节点中信息增益较大的进一步进行建立决策树。(递归建立决策树)

决策树停止停止生长的条件:

  • 如果属性都用于划分,直接结束;如果还有没有被划分的节点,使用多数表决;
  • 如果所有样本都已经分类,直接结束;
  • 定义最大不纯度进行度量;
  • 定义叶子节点的数目;
  • 定义分支节点包含的样本个数。

三.决策树剪枝

决策树是充分考虑了所有的数据点而生成的复杂树,有可能出现过拟合的情况,决策树越复杂,过拟合的程度会越高。决策树的构建过程是一个递归的过层,所以必须确定停止条件,否则过程将不会停止,树会不停生长。

先剪枝:提前结束决策树的增长。预剪枝降低了过拟合的风险,减少了决策树的训练时间开销和测试时间开销.带来了欠拟合的风险。

后剪枝:是指在决策树生长完成之后再进行剪枝的过程。—— 最小错误剪枝技术(MEP),悲观错误剪枝(MEP)和代价复杂度剪枝(CCP)泛化性能往往优于预剪枝决策树,训练时间开销比未剪枝的决策树和预剪枝的决策树都要大得多。

总结:

使用决策树进行分类的优点是非常直观,便于理解,并且执行效率高,执行只需要一次构建,可反复使用。但是对小规模数据集才更有效,而且在处理连续变量时效果不好,较难预测连续字段,在类别较多时,错误增加的比较快。

参考文献

[1] 陈雷.深度学习与MindSpore实践[M].清华大学出版社:2020.

[2] 诸葛越,葫芦娃.百面机器学习[M].人民邮电出版社:2020.

[3] 阿斯顿.张,李沐.动手学深度学习[M].人民邮电出版社:2020.

点击关注,第一时间了解华为云新鲜技术~

浅析决策树的生长和剪枝相关推荐

  1. 机器学习爬大树之决策树(CART与剪枝)

    分类与回归树(classification and regression tree,CART)是应用广泛的决策树学习方法,同样由特征选择,树的生成以及剪枝组成,既可以用于分类也可以用于回归.CART假 ...

  2. 决策树第二部分预剪枝

    决策树预剪枝: 决策树可以分成ID3.C4.5和CART. 算法目的:决策树的剪枝是为了简化决策树模型,避免过拟合. 剪枝类型:预剪枝.后剪枝 预剪枝:在构造决策树的同时进行剪枝.所有决策树的构建方法 ...

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

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

  4. 机器学习--决策树二(预剪枝和后剪枝)

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

  5. 机器学习:决策树过拟合与剪枝,决策树代码实现(三)

    文章目录 楔子 变量 方法 数据预处理 剪枝 获取待剪集: 针对ID3,C4.5的剪枝 损失函数的设计 基于该损失函数的算法描述 基于该损失函数的代码实现 针对CART的剪枝 损失函数的设计 基于该损 ...

  6. 机器学习笔记(九)——决策树的生成与剪枝

    一.决策树的生成算法 基本的决策树生成算法主要有ID3和C4.5, 它们生成树的过程大致相似,ID3是采用的信息增益作为特征选择的度量,而C4.5采用信息增益比.构建过程如下: 从根节点开始,计算所有 ...

  7. 决策树的生成与剪枝CART

    跟我一起机器学习系列文章将首发于公众号:月来客栈,欢迎文末扫码关注! 在之前的一篇文章中,笔者分别介绍了用ID3和C4.5这两种算法来生成决策树.其中ID3算法每次用信息增益最大的特征来划分数据集,C ...

  8. 机器学习(决策树四)——简述 剪枝

    随着决策树深度的增大,模型效果会变化,但增大太多就会导致过拟合的情况,对于过拟合,常见的有两咱优化方式: 1 . 剪枝优化 决策树过度拟合一般情况是由于节点太多导致的(也就是树太深,这样可不可以把某些 ...

  9. Python 决策树的建树、剪枝与优化

    关注微信公共号:小程在线 关注CSDN博客:程志伟的博客 八个参数:Criterion,两个随机性相关的参数(random_state,splitter),五个剪枝参数(max_depth, min_ ...

最新文章

  1. 文件系统演示C语言,基于C语言的简单文件系统的实现
  2. 36 张图详解 DNS :网络世界的导航
  3. android 蓝牙 不休眠_全新便携蓝牙键盘 雷柏XK100带来高效办公新体验
  4. 企业生产常用的磁盘管理方式介绍
  5. 居中符号怎么打_小学语文标点符号的正确书写格式(附图文展示),让孩子牢记考试不丢分!...
  6. 《深入浅出数据分析》第十章第十一章
  7. java获取年的第一天和最后一天_java中如何获取当前年份的第一天和最后一天
  8. c语言打砖块代码,打砖块游戏的源代码(请多指教)
  9. 列出场景对象Lightmap属性
  10. kafka项目启动_使用Kafka Connect 同步Kafka数据到日志服务
  11. java 修改pdf文档的页面的大小
  12. Mysql Workbench connection ssl not enable问题解决
  13. 2023年Android现代开发
  14. linux分区方案为user,Ubuntu 为用户分配磁盘空间Linux 硬盘分区方案
  15. java词云推荐(KUMO)
  16. 计算机应用在我们生活中的哪些方面,计算机在我们生活中的应用
  17. 关闭Windows系统中的UAC用户帐户控制
  18. 实验吧-密码学-疑惑的汉字(当铺密码)
  19. 965年10元纸币收藏价值
  20. python根据IP判断地理位置

热门文章

  1. 【历史上的今天】8 月 13 日:甲骨文起诉谷歌;微软发布 IE3
  2. 丹麦最神奇门将:踢球时思考数学,37岁拿诺奖,与爱因斯坦吵吵一辈子,开创了量子力学...
  3. 便捷的php操作mysql库MysqliDb
  4. php支付宝系列之电脑网站支付,一个PHP文件搞定支付宝之电脑网站支付
  5. python100例讲解-【学习笔记】python100例
  6. Vue项目中ESLint配置(VScode)
  7. “人间自有真情在,宜将寸心报春晖”四川翼嘉酒业董事长杨涛 为清华学子送上“爱心大礼”
  8. 参展锦囊|2023中国玉米深加工产业展,玉米加工展参展攻略
  9. 把ppt变成exe,在没有PPT的电脑上也能随意播放
  10. 【数据库】MySQL基本操作(基操~)