一、相关概念:

  • 决策树:是一种基于特征对实例进行分类的一种树形结构。它也可以表示为if-else规则的集合,也可以看作是定义在特征空间划分上类的条件概率分布。
  • 熵:①在化学上:代表分子的混乱程度,分子越混乱无序,熵越大;分子越有序,熵越小。
    ②在信息论与概率统计中:表示随机变量不确定性的度量。随机变量x的熵的定义为:
  • 信息熵:衡量信息有效性的一种度量方法。如果某个信息使我们的判断更加有序、清晰,熵越小,反之越大。
  • 信息增益:表示得知特征x的信息而使得类Y的不确定性减少的程度。定义公式:
  • 经验熵:当熵中的条件概率由数据估计(特别是极大似然估计)得到时,熵就对应经验熵。
  • 经验条件熵:当熵中的条件概率由数据估计(特别是极大似然估计)得到时,条件熵就对应经验条件熵。
  • 条件概率:表示一个子空间上的概率。如果一个事件发生在R空间上,那么[-6, 6]的子空间就是该事件的条件概率。
  • 基尼指数:直观上说,就是从样本数据集D中选取两个样本点,这两个样本点的类别不一致的概率。
    公式可定义为:分类问题中,数据集有K个类,其中样本点属于第k个类的概率为pkp_{k}pk​,则概率分布的基尼指数为:
    Gini(p)=∑k=1Kpk(1−pk)=1−∑k=1Kpk2.Gini(p)=\sum_{k=1}^{K}p_{k}(1-p_{k})=1-\sum_{k=1}^{K}p_{k}^2.Gini(p)=k=1∑K​pk​(1−pk​)=1−k=1∑K​pk2​.
    对于二分类问题,假设第一个样本点属于第1个类的概率为ppp,则二分类问题的概率分布为:
    Gini(p)=2∗p(1−p).Gini(p)=2*p(1-p).Gini(p)=2∗p(1−p).
    对于给定的样本数据集D,
    Gini(D)=1−∑k=1K(∣Ck∣∣D∣)2.Gini(D)=1-\sum_{k=1}^{K}( \frac{\left | C_{k} \right |}{\left | D \right |})^2.Gini(D)=1−k=1∑K​(∣D∣∣Ck​∣​)2.
    其中,K是类别的数目,CkC_{k}Ck​表示属于第k类的样本子集。

二、决策树综述:

决策树旨在学习一个与训练数据集拟合程度很好,但模型复杂度又小的模型。
决策树算法由三部分构成:特征选择、决策树的生成、决策树的剪枝。
决策树常见的算法有:ID3、C4.5、CART。

三、特征选择:

  1. 特征选择:
    特征选择的目的在于选取对训练数据集能够分类的特征,而特征选择的关键是特征选择准则。
  2. 特征选择准则:
    ①信息增益:(样本集合D对特征A的的信息增益(ID3))
    g(D,A)=H(D)−H(D∣A)g(D,A)=H(D)-H(D|A)g(D,A)=H(D)−H(D∣A)
    H(D)=−∑k=1K∣Ck∣∣D∣log2∣Ck∣∣D∣H(D)=-\sum_{k=1}^{K}\frac{\left | C_{k} \right |}{\left | D \right |}log_2\frac{\left | C_{k} \right |}{\left | D \right |}H(D)=−k=1∑K​∣D∣∣Ck​∣​log2​∣D∣∣Ck​∣​
    H(D∣A)=∑i=1n∣Di∣∣D∣H(Di)H(D|A)=\sum_{i=1}^{n}\frac{\left | D_{i} \right |}{\left | D \right |}\: H(D_{i})H(D∣A)=i=1∑n​∣D∣∣Di​∣​H(Di​)
    ②信息增益比:(样本集合D对特征A的的信息增益(C4.5))
    gR(D,A)=g(D,A)HA(D)g_R(D,A)=\frac{g(D,A)}{H_A(D)}gR​(D,A)=HA​(D)g(D,A)​
    ③基尼指数:(样本集合D的基尼指数(CART))
    Gini(D)=1−∑k=1K(∣Ck∣∣D∣)2.Gini(D)=1-\sum_{k=1}^{K}( \frac{\left | C_{k} \right |}{\left | D \right |})^2.Gini(D)=1−k=1∑K​(∣D∣∣Ck​∣​)2.
    样本集合D对特征A的基尼指数:
    Gini(D,A)=∣D1∣∣D∣Gini(D1)+∣D2∣∣D∣Gini(D2)Gini(D,A)=\frac{\left | D_{1} \right |}{\left | D \right |}Gini(D_{1})+\frac{\left | D_{2} \right |}{\left | D \right |}Gini(D_{2})Gini(D,A)=∣D∣∣D1​∣​Gini(D1​)+∣D∣∣D2​∣​Gini(D2​)

四、决策树的生成:

  1. ID3 生成算法:

  2. C4.5生成算法:
  3. CART生成算法:

五、决策树的剪枝:

主要分为预剪枝和后剪枝两种策略。

  1. ID3算法和C4.5算法的剪枝算法:

  2. CART算法的剪枝算法

六、疑问:

  1. 为什么ID3算法要以信息增益为选择最优特征的选择准则?而不选择经验条件熵?
    经验条件熵 H(D|A)表示特征A加入之后,集合D的不确定性。
    而信息增益=H(D)-H(D|A),表示因为特征A的原因,导致集合D的不确定性减少的程度。
    所以,信息增益代表的是一种变化差,更有说服力。
  2. 为什么C4.5算法使用信息增益比作为选择最优属性的准则,而不是选择信息增益?
    因为信息增益具有一个缺点,总是对取值较多的属性具有偏好,例如经典的确定某个西瓜是好瓜还是坏瓜,以编号为特征其信息增益大于纹理特征(最优特征),但是不能选择编号作为划分特征。
    而信息增益比需要在信息增益的前提下,除一个特征的固有属性。但是以信息增益比为选择最优划分特征时,又会出现选择属性取值较少的特征偏好,所以C4.5算法采用启发式策略,通过选择信息增益高于平均水平的特征,再从中选择信息增益比较高的特征。

Reference:《统计学习方法》——李航

05 决策树——读书笔记相关推荐

  1. 2015.05.05,外语,读书笔记-《Word Power Made Easy》 15 “如何谈论事情进展” SESSION 42...

    HOW TO TALK ABOUT WHAT GOES ON TEASER PREVIEW 一些以-ate结束的动词,通常表示: to exhaust([ig'zɔ:st] n. 排气,排气装置 v. ...

  2. 读书笔记: 博弈论导论 - 05 - 完整信息的静态博弈 纳什均衡

    读书笔记: 博弈论导论 - 05 - 完整信息的静态博弈 纳什均衡 压制信念:纳什均衡(Pinning Down Beliefs: Nash Equilibrium) 本文是Game Theory A ...

  3. 小啊呜产品读书笔记001:《邱岳的产品手记-05》第9讲 产品案例分析:Hopper的“人工智能” 第10讲 产品被抄袭了怎么办?

    小啊呜产品读书笔记001:<邱岳的产品手记-05>第9讲 产品案例分析:Hopper的"人工智能" & 第10讲 产品被抄袭了怎么办? 一.今日阅读计划 二.泛 ...

  4. Machine Learning in Action 读书笔记---第3章 决策树

    Machine Learning in Action 读书笔记 第3章 决策树 文章目录 Machine Learning in Action 读书笔记 一.决策树算法简介 1 决策树的构造 2 决策 ...

  5. 推荐系统实践读书笔记-05利用上下文信息

    推荐系统实践读书笔记-05利用上下文信息 本章之前提到的推荐系统算法主要集中研究了如何联系用户兴趣和物品,将最符合用户兴趣的物品推荐给用户,但这些算法都忽略了一点,就是用户所处的上下文(context ...

  6. 英语读书笔记-Book Lovers Day 05

    英语读书笔记-Book Lovers Day 05 Part 1 Libby takes a swig of tomato juice. Because he's made the unilatera ...

  7. 【Effection C++】读书笔记 条款05~条款06

    [Effection C++]读书笔记 Part2 构造/析构/赋值运算 条款05:了解C++默认编写并调用哪些函数 编译器可以暗自为class创建default构造函数,copy构造函数,copy ...

  8. 【读书笔记】科技自传-小米手机,雷军传:让未来的你,感谢现在努力的自己_2019.05.19

    [概述] 书名:雷军传:让未来的你,感谢现在努力的自己 作者:中国.陈玉新 日期:2019年05月19日 大事件记录:西安66万元的奔驰车女车主维权事件 读书用时:501页,8小时. [读书笔记] 雷 ...

  9. 吐血整理!万字原创读书笔记,数据分析的知识点全在这里了

    作者:JaneK 来源:大数据DT 导读:今天这篇文章是「大数据」内容合伙人JaneK关于<Python数据分析与数据化运营>的一篇读书笔记. 本文目录: Python数据分析与挖掘 01 ...

最新文章

  1. Matlab:基于Matlab通过GUI实现自动驾驶的车牌智能识别
  2. java 从数据库取值_JAVA操作数据库--从一张表中取值,经过判断,然后插入另一张表中。...
  3. MSSQL数据库C#操作类(SQLHELPER类的修改版)
  4. C语言实现上三角蛇形矩阵不用数组,蛇形矩阵c语言实现
  5. cf1553C. Penalty
  6. 详解STL中的空间配置器(SGI版本)
  7. 批量关停azure vm_创建Azure自动化以启动Azure VM
  8. opencv中mean函数耗时_使用OpenCV进行人脸对齐
  9. DiskCatalogMaker for Mac(磁盘管理工具)
  10. 上海Android交流会分享主题与报名
  11. Flink 新一代流计算和容错——阶段总结和展望
  12. bat 判断文件名字含有某些字段_PE文件头及其简单逆向运用
  13. 77个互联网+大学生创新创业大赛文档
  14. insert触发器实例
  15. PeckShield旗下数字资产反洗钱系统CoinHolmes亮相北京网络安全大会!
  16. 设计多层PCB板需要注意哪些事项?
  17. jquery.uploadView.js图片上传插件
  18. pytorch 支持amd显卡吗_AMD平台上配置PyTorch+Apex开发环境
  19. 红米note10和红米note8pro哪个好
  20. linux防火墙富规则,[Linux]Redhat7防火墙配置汇总

热门文章

  1. 众人坐下以后,苏睿好不容易找来了几个茶碗
  2. ASP.NET各种项目源码
  3. R语言安装包出现 Error in loadNamespace(j - i[[1L]], c(lib.loc, .libPaths())错误
  4. Aruba7010 默认密码_安全性能最差的密码组合,123456年年是第一!
  5. React学习(6)-React中组件的数据-state
  6. C语言--经典100题
  7. cookie使用注意问题【cookie学习笔记】
  8. 超详细!一篇文章带你轻松入门神经调控
  9. 招聘 | 百度NLP部 - 对话算法实习生
  10. FAT32转换为NTFS(无损数据转换不格式化,不损坏数据