1)什么是决策树?
顾名思义,决策树是以树形的结构方式来对事件做决定和分类。我们以来判断一个瓜是不是好瓜来举例子,如下:
决策树的结构一般包含一个根节点,若干个内部节点和若干个叶节点;根节点包含所有样本(各种各样的瓜)。内部节点是西瓜的属性(根茎叶是什么样子的),叶节点是结论(好瓜,坏瓜)。每条从根节点到叶节点的路径就代表一种属性判定路径。
2)划分依据
你可能要问,西瓜有那么多属性,我们到底先选择什么来作为第一个判定属性?我们怎么分类才能让该属性下的样本尽可能是“一伙儿”的。
(1)第一种划分依据
信息熵(info entropy)

信息熵是用来度量样本集合纯度最常用的指标,其公式如下:

其中p是所分类的西瓜样本所占总样本的比例(k=1,2,3....y)。Ent(D)的值越小,则 D的纯度越高。
信息增益
假定离散属性a有V个可能取值{a1,a2,a3.....av },我们若用a来对样本集合D来进行划分,则会产生V个分支结点,其中第v个分支结点包含D中所有在属性a上取值为av的样本,记做Dv。则信息增益公式如下:

这里,我们将信息增益的大小作为划分结点的依据。如果节点的某属性信息增益最大,我们就以该属性来划分此结点。每个属性划分都只能用一次。
( 2)第二种划分依据
可能你已经发现了,由于权重的存在,信息增益准则对包含数目较多的属性有偏好。为了减少这种不“客观”的判定,我们选择”增益率“(C4.5)来划分属性。公式如下;

其中

这里IV(a)称之为属性a的固有值。通常情况下,a越大,固有值越大。这样就减小了上面信息增益对包含数目多的属性的偏好。但是尴尬的是,似乎减少的太多了。增益率对包含数目较少的属性有偏好,这里Quinlan提出了一种方法:先找出信息增益高于平均水平的,然后再选出增益率最高的。
(3)第三种划分依据

基尼指数,公式如下:

这里的基尼指数越小,则数据集D的纯度越高。同理,推广到属性a的基尼指数如下:

这里选择基尼指数最小的属性作为划分的依据。
3)建立一棵决策树(示例)

这里,我们来判断一棵西瓜的好坏。现在有17颗西瓜,其属性状况如下:

显然,根节点是这17个样本。好了,我们现在开始计算了。
(1)计算第一层内结点
首先,计算样本的信息熵。

很明显我们要分类的结果是好与坏两种类别,则|y|=2。那么其信息熵如下:

这里有8个好瓜,9个坏瓜。

接下来,我们要计算各个属性的信息增益,我们以色泽举例。色泽包含三种情况{青绿,乌黑,浅白}。其好瓜样本占属性样本比例分别是3/6,4/6,1/5。坏瓜样本占属性样本比例分别是3/6,2/6,4/5。则根据信息熵公式(4.1)得到:

再根据公式(4.2)计算‘色泽’的信息增益得到:

同理,我们计算得到其他属性的信息增益如下:

我们可以看到纹理的信息增益最大,为0.381。于是我们选择纹理作为我们的第一层属性结点。如下:

(2)第二层属性结点

我们已经在第一层属性结点中用过了“纹理”,所以本层就不可以再用了。首先,我们在由“纹理”划分出的“清晰”样本{1,2,3,4,5,6,8,10,15}中,计算各剩余属性的信息增益。我们这里以色泽举例,如下:

首先计算‘“清晰”样本的信息熵:

接下来计算各个属性的信息熵:

接下来,计算”色泽“在”清晰“样本中的信息增益:

同理,我们计算其他属性在“清晰”样本下的信息增益。如下:

我们可以看到“脐部”,“根蒂”,”触感“三个属性的信息增益最大,所以本层,我们任选三个属性的一个来分类。我们这里选择“根蒂”,如下:

那么,剩下的两个二级样本稍糊和模糊呢?我们来看稍糊:

稍糊有样本{7,9,13,14,17}。我们对该样本求信息熵得到:

同理,计算各属性的信息熵,不再包括属性“根蒂”,。然后再计算信息增益,如下:

同理,计算得到其他的信息增益。得到触感是最适合的属性。如下:

至于模糊就简单了,因为”模糊“这类样本只有坏瓜,第二层决策树枝到此结束。
(3)第三层属性结点

这里我们先从第二层的第一类属性(根蒂)开始,将其分成三类样本。如下:

这里,我们很容易发现这里的蜷缩和硬挺都已经结束。这里,只需要对”稍蜷“样本进行分类。其样本有{6,8,15}。同理,我们需要计算信息熵,信息增益,还是首先以”色泽“来计算。如下:

2.计算剩余的熵:


3.计算增益:

计算剩余的信息增益,得到色泽是最大的增益。这里选择”色泽“做为我们第三层的属性划分。同理,我们对第四层,第五层做属性划分。得到最终的决策树:

今天我们就到这里,剩下的剪枝处理,连续值和缺失值处理后面再讲。希望有志同道合的小伙伴关注我的公众平台,欢迎您的批评指正,共同交流进步。

西瓜书学习(一)—决策树(上)相关推荐

  1. 西瓜书学习记录-决策树(第四章)

    西瓜书学习记录-决策树(第四章) 第四章啦 知乎黄耀鹏-决策树算法的Python实现: https://zhuanlan.zhihu.com/p/20794583 一般分布例子如下:(见下具体例题) ...

  2. 【DataWhale学习】Day10~13-4章决策树——西瓜书学习摘录笔记

    [DataWhale学习]Day10~13-4章决策树--西瓜书学习摘录笔记 本文参考了周志华老师的西瓜书,李航老师的统计学习方法,谢文睿大佬的南瓜书(无推导尿点,仅加深理解食用) 决策树模型 ​ 决 ...

  3. 西瓜书学习笔记第2章(模型评估与选择)

    西瓜书学习笔记第2章(模型评估与选择) 2.1经验误差与过拟合 2.2评估方法 2.2.1留出法(hold-out) 2.2.2交叉验证法(cross validation) 2.2.3自助法(boo ...

  4. 西瓜书学习记录-模型评估与选择(第二章)

    西瓜书学习记录-模型评估与选择 第二章啦 整个过程可以描述为在训练集上去训练,在验证集上去调参,调完参之后再到训练集上去训练,直到结果满意,最后到测试集上去测试. 例子(反例): 上图选择蓝色的线,坏 ...

  5. 周志华西瓜书学习笔记(一)

    周志华西瓜书学习笔记 第一章 绪论 数据处理分为三个阶段:收集,分析,预测. 一.基本概念 机器学习致力于研究如何通过计算的手段,利用经验来改善系统自身的性能. Mitchell给出的更形式化的定义为 ...

  6. 西瓜书学习记录-神经网络(第五章)

    西瓜书学习记录-神经网络(第五章) 第五章啦,大佬的视频没讲第五章,所以看书自学一下: 书籍来自周志华的<机器学习>.

  7. 西瓜书学习记录-线性模型(第三章)

    西瓜书学习记录-线性模型(第三章) 第三章啦 反函数(上图) 梯度下降法: 补充:: 看的大佬的教学视频,标明一下出处: https://www.bilibili.com/video/BV17J411 ...

  8. 西瓜书学习记录-绪论

    西瓜书学习记录-绪论 看了一下大神录的西瓜书读书记录,学习到很多东西,这里记录一下自己学习的一些截屏记录,方便以后再来复习,致敬大神们的讲解,感谢感谢. 看的大佬的教学视频,标明一下出处: https ...

  9. 西瓜书--学习笔记1

    西瓜书–学习笔记1 第一章 1.分类和回归是监督学习的代表,而聚类是无监督学习的代表. 2.归纳和演绎是科学推理的两大基本手段. 归纳:从特殊到一般的"泛化"过程,即从具体的事实归 ...

  10. 西瓜书学习(task2)

    4.1.1 组成 一颗决策树包含一个根结点.若干个子结点和若干个叶结点. 根结点:包含样本全集: 子结点:对应属性划分,包含划分样本: 叶结点:对应决策结果,包含决策样本. 从根结点到每个叶结点的路径 ...

最新文章

  1. Python可视化应用实战-如何制作酷炫的图表?
  2. 阿里巴巴P9大佬雷卷与中间件小哥重新定义:高段位程序员的学习之道
  3. Java设计模式详解
  4. ttribute value is quoted with which must be escaped when used within the value
  5. SpringMVC(笔记)
  6. 即时通讯学习笔记003---Tigase代码框架解读
  7. 由于找不到Qt5widgets.dll,无法继续执行代码。重新安装程序可能会解决此问题。
  8. CentOS 7系统,Docker想启用userns-remap,傻了吧?
  9. socket通信相关知识
  10. Groovy中那些神奇注解之ToString
  11. python settings_python settings如何配置sqlite?
  12. mysql 5.6.14 win7 32位免安装版配置_mysql 5.6.14 win7 32位免安装版配置
  13. 工业级串口Modbus数据绘制曲线及上位机监控软件DotTrend
  14. 水经注地图发布服务中间件的适用范围
  15. 【jmeter连接数据库报错问题排查,以及建立jmeter与mysql之间的简单连接】
  16. lucene-使用htmlparser解析未设定编码页面
  17. 鸢尾花分类——神经网络详解
  18. 爱马仕Hermès手表怎么样?
  19. CR2格式批量转换JPG(美图看看)
  20. 用Javascript开发《三国志曹操传》-开源讲座(四)-用地图块拼成大地图

热门文章

  1. 游戏计算机的配置清单,2020年电脑主流配置清单 游戏电脑性价比排行榜
  2. Visual Studio常用功能的设置(1)---安装插件、修改字体、查看历史记录、git diff
  3. kks 计算机设备,金思维电厂KKS编码解决方案
  4. U盘模式无法引导进入pe系统
  5. USRP B210 软件定义的无线网络(SDR)支撑设备
  6. 【代码随想录二刷】Day23-二叉树-C++
  7. Linux Linux中“”, “.“和”..“的含义
  8. CF1722A Spell Check 题解
  9. C# 子线程中访问主线程中的控件
  10. 【网页报404,域名可以PING通,但是网址就是打不开】