【Abee】吃掉西瓜——西瓜书学习笔记(三)
决策树(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】吃掉西瓜——西瓜书学习笔记(三)相关推荐
- 周志华西瓜书学习笔记(一)
周志华西瓜书学习笔记 第一章 绪论 数据处理分为三个阶段:收集,分析,预测. 一.基本概念 机器学习致力于研究如何通过计算的手段,利用经验来改善系统自身的性能. Mitchell给出的更形式化的定义为 ...
- 西瓜书学习笔记第2章(模型评估与选择)
西瓜书学习笔记第2章(模型评估与选择) 2.1经验误差与过拟合 2.2评估方法 2.2.1留出法(hold-out) 2.2.2交叉验证法(cross validation) 2.2.3自助法(boo ...
- 西瓜书--学习笔记1
西瓜书–学习笔记1 第一章 1.分类和回归是监督学习的代表,而聚类是无监督学习的代表. 2.归纳和演绎是科学推理的两大基本手段. 归纳:从特殊到一般的"泛化"过程,即从具体的事实归 ...
- 吴恩达《机器学习》学习笔记三——多变量线性回归
吴恩达<机器学习>学习笔记三--多变量线性回归 一. 多元线性回归问题介绍 1.一些定义 2.假设函数 二. 多元梯度下降法 1. 梯度下降法实用技巧:特征缩放 2. 梯度下降法的学习率 ...
- J2EE学习笔记三:EJB基础概念和知识 收藏
J2EE学习笔记三:EJB基础概念和知识 收藏 EJB正是J2EE的旗舰技术,因此俺直接跳到这一章来了,前面的几章都是讲Servlet和JSP以及JDBC的,俺都懂一些.那么EJB和通常我们所说的Ja ...
- Spring框架学习笔记(三)(AOP,事务管理)
Spring框架学习笔记(三) 九.AOP 9.1 AOP的注解配置 (1) 新建计算器核心功能(模拟:不能在改动核心代码) (2) 建立一个普通的Java类写增强代码(面向切面编程),使用Sprin ...
- DX11龙书学习笔记---渲染管线
DX11龙书学习笔记---渲染管线 1.输入装配阶段 - 顶点 - 图元拓扑 - 点列表 - 线带 - 线列表 - 三角形带 - 三角形列表 - 带有邻接信息的图元 - 控制点面片列表 - 索引 2. ...
- SurfaceFlinger学习笔记(三)之SurfaceFlinger进程
概述 本系列是基于android Q 即android10 SurfaceFlinger学习笔记(一)应用启动流程 SurfaceFlinger学习笔记(二)之Surface SurfaceFling ...
- DX11龙书学习笔记---准备工作
DX11龙书学习笔记---准备工作 1.交换链和页面翻转 深度缓冲区 多重采样 1.交换链和页面翻转 为了避免在动画中出现闪烁,最好的做法是在一个离屏(off-screen)纹理中执行所有的动画帧绘制 ...
- tensorflow学习笔记(三十二):conv2d_transpose (解卷积)
tensorflow学习笔记(三十二):conv2d_transpose ("解卷积") deconv解卷积,实际是叫做conv_transpose, conv_transpose ...
最新文章
- Java中的异常和递归
- Visual Studio 2005 SP1安装 关键点
- 两张超级大表join优化
- boost::json::to_string用法的测试程序
- find函数matlab_从零开始的matlab学习笔记——(39)find函数
- VxWorks操作系统
- linux 防火墙配置命令
- [软件]提高日常操作电脑的效率
- 力扣-53 最大子序和
- java 8.0_java8_java8下载64位v8.0 官方版下载-无限下载
- 芯片测试服务器,检测服务器硬件软件
- c 语言count函数什么意思,在C ++ STL中设置count()函数
- java多线程学习笔记。
- C#设计模式——访问者模式(Vistor Pattern)
- mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such f
- Android 应用清单简介1
- SpringBoot项目集成UniPush推送服务
- 算法精解_C语言 链表_单链表(接口定义+类型实现)
- linux指令_刘世民
- ArcGIS API for JS:实现属性查询
热门文章
- nacos服务端报 failed to update serviceName: localhost
- Educational Codeforces Round 116 (Rated for Div. 2) A B C
- Camunda BPM工作流引擎入坑指南(一)
- css 霓虹灯转动效果,使用SVG + CSS实现动态霓虹灯文字效果
- win10快捷方式出现白色图标处理方法
- OpenOffice转PDF遇到的问题
- php读取word模板文件,使用PHPWord对Word文件做模板替换
- 为什么笔记本连接WiFi总是受限
- 比客户的变态需求更可怕的是,有一群“猪队友”!
- 分析抖音爆红原因,看抖音的未来发展