1 导论–什么是决策树

本文整体阅读时长约10分钟。如果只想对决策树有个概念性的了解,建议只阅读各级标题即可。

决策树算法是一种采用树形结构解决分类问题的算法。其树形结构如下图所示,主要包含根节点,叶结点,及两者之间的中间结点,可以看出,根节点划分开始直至全部为叶结点结束。

2 决策树学习流程

2.1 特征(属性)选择

选择哪些特征作为分类的标准是决策树算法的关键,因为特征选择的好坏直接决定了分类的效果是否理理想。因此,在存在的众多特征(属性)中,如何找到与分类最相关、次相关的特征是核心。一般地,决策树算法会根据:信息增益,作为准则来进行特征的确定。即对根节点计算所有特征的信息增益,选择信息增益最大的特征作为最开始的节点特征。

2.2 决策树生成

在进行特征确定之后,就可以根据最相关属性进行分类:即从该节点出发,根据该特征的不同取值建立子节点;对每个子节点使用相同的方式生成新的子节点,直到信息增益很小或者没有特征可以选择为止。这样,决策树就生成完毕了。

2.3 决策树剪枝(防止过拟合)

决策树在生成过程中,为了尽量分类正确,节点划分过程有时会不断重复,造成分支过多,有可能会将训练样本分类太好,而泛化能力减弱,即出现过拟合。因此,有必要在决策树生成后进行剪枝处理。

3 案例实现----3种经典决策树算法

3.1 ID3算法详解

3.1.1 分类依据(增益率)

决策树是根据信息增益来进行特征选择的,信息增益定义为
Gain(D,a)=Ent(D)−Σv=1V∣Dv∣∣D∣Ent(Dv)Gain(D, a)=Ent(D) - \Sigma_{v=1}^{V} \frac{|D^v|}{|D|} Ent(D^v) Gain(D,a)=Ent(D)−Σv=1V​∣D∣∣Dv∣​Ent(Dv)
其中D为总的样本,a为属性,v为在属性a中的v类样本,信息增益越大,表明该属性对分类的相关性越大。Ent()表示信息熵(entropy),公式如下:
Ent(D)=−Σk=1Dpklog2pk.Ent(D) = - \Sigma_{k=1}^{D} p_k log_2 {p_k}. Ent(D)=−Σk=1D​pk​log2​pk​.
k表示在样本D中的第k类样本,pkp_kpk​表示第k类样本所占样本总体的概率。类比于现实中的熵,可以理解为,信息熵越小,表明纯度越高。

3.1.2 分类流程

按照第2节中决策树学习的流程,有了上述的分类依据,我们便可对根节点进行分类,其实套用公式即可。

  1. 先求取每个属性a下所对应分类的信息熵Ent(Dv)Ent(D^v)Ent(Dv)(此时计算的是在属性a中的所占比例),乘上此时a属性分类下各样本所占总体样本的比例并加和,随后得到Gain(D,a)Gain(D,a)Gain(D,a)。
  2. 然后就进一步计算Gain(D,b)Gain(D,b)Gain(D,b), Gain(D,c)Gain(D,c)Gain(D,c)等a,b,c各属性的增益,相互比较,得到增益率最大的那个属性即作为本次的划分属性。
  3. 然后在可继续分类的那个子节点下重复上述1和2的过程(此时可以不用计算上面刚确定的那个属性的增益率),一直到不可再分为止,即全部为叶结点为止。
  4. 此时决策树大体就生成好了,结合验证集,通过剪枝或后剪枝法对一些节点进行剪枝操作。然而,预剪枝预防过拟合,却带来了欠拟合风险;后剪枝则在决策树完全生成后进行,并且自底向上逐一排查,训练开销大。

3.2 C4.5算法

在ID3算法上的改进,由于ID3算法会偏向于样本数目多的属性,因此ID3引进了一个因子来抵消它,但会引来偏好数目少的样本。因此,在应用中,先从候选属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的。其具体公式见最后附图。

3.3 CART算法

和之前选择增益率最大的不同,CART算法是通过基尼指数的最小值来选择属性,基尼指数越小,其纯度越高。以上所有的讲解小结在最后附图中。

参考文档:
周志华,《机器学习》,清华大学出版社。

决策树算法(ID3算法详解)相关推荐

  1. 决策树算法ID3算法(Python3实现)

    目录 1.数据集准备 2.使用ID3算法递归构建决策树并使用决策树执行分类 2.1 ID3算法概述 2.2 递归终止条件 2.3 代码实现 3.Matplotlib实现决策树可视化 4.决策树的存储与 ...

  2. ID3算法详解及python实现

    前言 决策树算法在机器学习中算是很经典的算法系列.它既可以作为分类算法,也可以作为回归算法,同时也特别适合集成学习比如随机森林.本文就对决策树算法ID3思想做个总结. ID3算法的信息论基础 1970 ...

  3. python机器学习算法.mobi_机器学习之ID3算法详解及python代码实现

    在生活中我们经常会用到决策树算法,最简单的就是二叉树了:相信大家也会又同样的困扰,手机经常收到各种短信,其中不乏很多垃圾短信.此时只要设置这类短信为垃圾短信手机就会自动进行屏蔽.减少被骚扰的次数,同时 ...

  4. 决策树算法——ID3算法,C4.5算法

    目录(?)[-] 决策树算法 1摘要 2决策树引导 3决策树的构造 31ID3算法 32C45算法 4关于决策树的几点补充说明 41如果属性用完了怎么办 42关于剪枝 决策树算法 1.摘要 在前面两篇 ...

  5. python决策树 value_机器学习之ID3算法详解及python代码实现

    在生活中我们经常会用到决策树算法,最简单的就是二叉树了:相信大家也会又同样的困扰,手机经常收到各种短信,其中不乏很多垃圾短信.此时只要设置这类短信为垃圾短信手机就会自动进行屏蔽.减少被骚扰的次数,同时 ...

  6. 机器学习:决策树算法(ID3算法)的理解与实现

    机器学习:决策树算法(ID3算法)的理解与实现 文章目录 机器学习:决策树算法(ID3算法)的理解与实现 1.对决策树算法的理解 1.概述 2.算法难点 选择最优划分属性 1.信息熵 2.信息增益 2 ...

  7. 数据挖掘ID3算法详解

    ID3算法 例:设网球俱乐部有打球与气候条件的历史统计数据如下表表示.其中,描述气候的条件属性:"天气"."温度"."湿度"."风 ...

  8. id3算法c语言实现,从ID3到C5.0的故事:算法详解及实践应用

    原标题:从ID3到C5.0的故事:算法详解及实践应用 在前面,我们分别概述性地介绍了决策树的基本知识: 1.算法概述 ID3(Iterative Dichotomiser3)算法可以说决策树算法中最著 ...

  9. c4.5算法 程序语言,决策树之C4.5算法详解-Go语言中文社区

    决策树之C4.5算法详解 主要内容 C4.5算法简介 分裂属性的选择--信息增益率 连续型属性的离散化处理 剪枝--PEP(Pessimistic Error Pruning)剪枝法 缺失属性值的处理 ...

  10. 经典算法详解--CART分类决策树、回归树和模型树

    Classification And Regression Tree(CART)是一种很重要的机器学习算法,既可以用于创建分类树(Classification Tree),也可以用于创建回归树(Reg ...

最新文章

  1. 将网站程序放在tmpfs下
  2. 【指标统计】MsgProxy消息代理配置
  3. Andorid之jni里面崩溃然后用errno分析结果解决问题
  4. 计算机应用计算机电算化题库,2014年浙江省会计电算化客观题题库
  5. 耗时n年,38页《数据仓库知识体系.pdf》(数据岗位必备)
  6. Android点击返回键销毁自己,Activity界面销毁 软键盘未收回
  7. svg mysql_SVG 实例
  8. MFC对话框自适应大小(四舍五入)高精度版本
  9. OpenShift 4 之配置Insecure Registry和Blocked Registry镜像源
  10. 论一种迫不得已用全中文数据库的情景
  11. 网页滚动条向下拉动奇慢的原因
  12. 端午节海报|端午节海报设计素材图片大全
  13. Qt-Arm交叉编译以及调用虚拟键盘(中英)
  14. vue项目上传图片的方法
  15. 网站降权根服务器有关系吗,导致网站降权或被k的原因有哪些?
  16. 锁定计算机黑屏怎么办,win10锁定屏幕就黑屏怎么办_win10电脑锁定了黑屏怎么办...
  17. Photoshop CS2 视频教程-PS色彩范围(转)
  18. ubuntu系统下载地址
  19. Linux通过curl下载jdk
  20. Nmap扫描失败原因及解决方法

热门文章

  1. GreenDotNet0 1 1发布 Net精简环境 及示例 Net在线漫画下载器
  2. Windows下DOS操作系统(cmd)详解
  3. 计算机学报应用研究,计算机学报论文_计算机学报_通信学报
  4. pdfFactory和pdfFactory Pro有什么不同
  5. windowsxp系统桌面卡住了解决
  6. Python Pyecharts模块Map绘制中国地图自定义省份名称
  7. 为什么要学编写通达信指标公式
  8. C语言编写一个掷骰子猜大小游戏,用C语言模拟一种掷骰子游戏
  9. virtualxposed使用教程_VirtualXposed框架
  10. 树莓派安装smbus_树莓派学习之I2C通信