决策树(decision tree)

目录

【内容包含 第四章】

基本流程

信息增益(information gain)

剪枝处理(pruning)

连续值处理

缺失值处理

多变量决策树


基本流程

决策树(decision tree)基于树状结构进行判定,基本流程遵循“分而治之”(divide-and-conquer)策略。

决策树基本流程

作图好累(doge

A\{a*}的意思是在集合A中把a*元素去掉


信息增益(information gain)

信息熵(information entropy)是一种常用的度量样本集合纯度的指标,假定当前样本集合D中第k类样本所占比例 ,则D的信息熵为

离散属性a有V个可能取值,若使用a对样本进行划分,会产生V个分支节点,第个分支节点包含了D中在a属性里取值为  的样本,记为,可以根据上式算出的信息熵,再考虑不同分支节点的样本数,对这个值进行加权,可以得到以属性a分类对样本集D的信息增益。

信息增益越大,意味着划分后的集合纯度越高,也就意味着属性a越好。

ID3决策树算法[Quinlan,1986] 就是以 信息增益 为准则选择划分属性的。

书里关于西瓜好坏划分的例子非常棒!建议全篇背诵!(误

C4.5决策树算法[Quinlan,1993] 考虑到信息增益会偏向取值较多的属性,采用 增益率(gain ratio)作为选择标准。

增益率定义为

CART决策树算法[Breiman et al,1984]  使用基尼系数(Gini index)选择划分属性。

基尼系数为

反映了数据集D中随机抽取两个样本,类别标记不一致的概率


剪枝处理(pruning)

为了解决决策树中过拟合的部分,需要采取剪枝处理。

预剪枝:在每个节点划分前进行估计,若不能带来泛化性能提升,则停止划分

后剪枝:生成完整决策树后,自底而上对非叶节点进行讨论,若子树能被叶节点代替,就替换叶节点

这两个操作都需要准备验证集,后剪枝比起预剪枝能保留更多的分支,欠拟合风险较低,缺点是训练时间开销较大。


连续值处理

C4.5决策树算法[Quinlan,1993]  中对连续值的处理方式是利用二分法(bi-partition)将连续属性离散化。即在候选划分点分别计算信息增益,选择信息增益最大的点作为划分点。

缺失值处理

由于部分数据可能存在缺失,而划分属性的时候显然只有有值的部分才能参与评判。分别计算出无缺失样本所占的比例,无缺失样本中第k类的比例,无缺失样本在属性a中取值为的样本所占的比例,此时信息增益的计算方式为

当样例在属性a上缺失时,以训练集中该类别的不同值占比的比例为概率进入所有子分支


多变量决策树

单变量,即每个叶节点以单属性的决策树,在图像角度体现是和坐标轴平行的直线(多维的话也是类似的概念)。多变量决策树就是把叶节点变成一个线性分类器,形如

其中w指a属性的权重,w和t可以在训练集中学习。


【Abee】吃掉西瓜——西瓜书学习笔记(三)相关推荐

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

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

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

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

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

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

  4. 吴恩达《机器学习》学习笔记三——多变量线性回归

    吴恩达<机器学习>学习笔记三--多变量线性回归 一. 多元线性回归问题介绍 1.一些定义 2.假设函数 二. 多元梯度下降法 1. 梯度下降法实用技巧:特征缩放 2. 梯度下降法的学习率 ...

  5. J2EE学习笔记三:EJB基础概念和知识 收藏

    J2EE学习笔记三:EJB基础概念和知识 收藏 EJB正是J2EE的旗舰技术,因此俺直接跳到这一章来了,前面的几章都是讲Servlet和JSP以及JDBC的,俺都懂一些.那么EJB和通常我们所说的Ja ...

  6. Spring框架学习笔记(三)(AOP,事务管理)

    Spring框架学习笔记(三) 九.AOP 9.1 AOP的注解配置 (1) 新建计算器核心功能(模拟:不能在改动核心代码) (2) 建立一个普通的Java类写增强代码(面向切面编程),使用Sprin ...

  7. DX11龙书学习笔记---渲染管线

    DX11龙书学习笔记---渲染管线 1.输入装配阶段 - 顶点 - 图元拓扑 - 点列表 - 线带 - 线列表 - 三角形带 - 三角形列表 - 带有邻接信息的图元 - 控制点面片列表 - 索引 2. ...

  8. SurfaceFlinger学习笔记(三)之SurfaceFlinger进程

    概述 本系列是基于android Q 即android10 SurfaceFlinger学习笔记(一)应用启动流程 SurfaceFlinger学习笔记(二)之Surface SurfaceFling ...

  9. DX11龙书学习笔记---准备工作

    DX11龙书学习笔记---准备工作 1.交换链和页面翻转 深度缓冲区 多重采样 1.交换链和页面翻转 为了避免在动画中出现闪烁,最好的做法是在一个离屏(off-screen)纹理中执行所有的动画帧绘制 ...

  10. tensorflow学习笔记(三十二):conv2d_transpose (解卷积)

    tensorflow学习笔记(三十二):conv2d_transpose ("解卷积") deconv解卷积,实际是叫做conv_transpose, conv_transpose ...

最新文章

  1. Java中的异常和递归
  2. Visual Studio 2005 SP1安装 关键点
  3. 两张超级大表join优化
  4. boost::json::to_string用法的测试程序
  5. find函数matlab_从零开始的matlab学习笔记——(39)find函数
  6. VxWorks操作系统
  7. linux 防火墙配置命令
  8. [软件]提高日常操作电脑的效率
  9. 力扣-53 最大子序和
  10. java 8.0_java8_java8下载64位v8.0 官方版下载-无限下载
  11. 芯片测试服务器,检测服务器硬件软件
  12. c 语言count函数什么意思,在C ++ STL中设置count()函数
  13. java多线程学习笔记。
  14. C#设计模式——访问者模式(Vistor Pattern)
  15. mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such f
  16. Android 应用清单简介1
  17. SpringBoot项目集成UniPush推送服务
  18. 算法精解_C语言 链表_单链表(接口定义+类型实现)
  19. linux指令_刘世民
  20. ArcGIS API for JS:实现属性查询

热门文章

  1. nacos服务端报 failed to update serviceName: localhost
  2. Educational Codeforces Round 116 (Rated for Div. 2) A B C
  3. Camunda BPM工作流引擎入坑指南(一)
  4. css 霓虹灯转动效果,使用SVG + CSS实现动态霓虹灯文字效果
  5. win10快捷方式出现白色图标处理方法
  6. OpenOffice转PDF遇到的问题
  7. php读取word模板文件,使用PHPWord对Word文件做模板替换
  8. 为什么笔记本连接WiFi总是受限
  9. 比客户的变态需求更可怕的是,有一群“猪队友”!
  10. 分析抖音爆红原因,看抖音的未来发展