第四章 决策树

news2025/1/16 14:58:15

4.1 基本流程

决策树是一类常见的机器学习方法。以二分类任务为例,其结构类似于二叉树。以西瓜问题为例,其结构如图所示:
在这里插入图片描述
一般的,一颗决策树包含一个根节点、若干个内部结点和若干个叶节点;叶节点对应决策结果,其他每个结点则对应于一个属性测试;每个结点包含的样本集合根据属性测试的结果被划分到子节点中;根结点包含样本全集。从根结点到每个叶节点的路径对应了一个判定测试序列。决策树学习的目的是为了产生一颗泛化能力强,即处理未见示例能力强的决策树,其基本流程遵循简单且直观的分而治之策略。
请添加图片描述

4.2 划分选择

一般而言,随着划分过程不断进行,我们希望决策树的分支结点所包含的样本尽可能属于同一类别,即结点的纯度越来越高。

4.2.1 信息增益

信息熵是度量样本集合纯度最常用的一种指标。
假定当前样本集合D中第k类样本所占的比例为Pk(k = 1, 2, …, |y| ),则D的信息熵定义为
在这里插入图片描述
其值越小,D纯度越高。
假定离散属性a有V个可能的取值{a1,a2, …, aV},若使用a来对样本集D进行划分,则会产生V个分支结点,其中第v个分支结点包含了D中所有在属性a上取值为aV的样本,记为Dv.我们可根据上式计算出Dv的信息熵,再考虑到不同的分支结点所包含的样本数不同,给分支结点赋予权重|Dv|/|D|,即样本数越多的分支结点的影响越大,于是可计算出用属性a对样本集D进行划分所获得的信息增益。信息增益计算公式如下:
在这里插入图片描述
一般的,信息增益越大,则意味着使用属性a来进行划分所获得的纯度提升越大!

4.2.2 增益率

实际上,信息增益准则对可取值数目较多的属性有所偏好,为减少这种偏好可能带来的不利影响,著名的C4.5决策树算法不直接使用信息增益,而是使用“增益率”来选择最优划分属性。其定义为
在这里插入图片描述
其中
在这里插入图片描述
称为属性a的固有值,属性a的可能取值数目越多,则IV(a)的值通常会越大。
需注意的是,增益率准则对可取值数目较少的属性有所偏好,因此C4.5算法并不是直接选择增益率最大的候选划分属性,而是使用了一个启发式:先从候选划分属性中找出信息增益高于平均水平的属性,再从中选择增益率最高的。

4.2.3 基尼指数

CART(Classification and Regression Tree)决策树使用基尼指数来选择划分属性,数据集D的纯度可用基尼值来度量:
在这里插入图片描述
直观来说,Gini(D)反映了从数据集D中随机抽取两个样本,其类别标记不一致的概率。因此,Gini(D)越小,则数据集D的纯度越高。
属性a的基尼指数定义为
在这里插入图片描述
于是,我们在候选属性集合A中,选择那个使得划分后基尼指数最小的属性作为最优划分属性。

4.3 剪枝处理

剪枝是决策树学习算法对付过拟合的主要手段。决策树剪枝的基本策略有预剪枝后剪枝预剪枝是指在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶节点;后剪枝则是先从训练集生成一颗完整的决策树,然后自底向上地对非叶节点进行考察,若将该结点对应的子树替换为叶节点能带来决策树泛化性能提升,则将该子树替换为叶节点。
预剪枝使得决策树的很多分支都没有展开,这不仅降低了过拟合的风险,还显著减少了决策树的训练时间开销和测试时间开销。但另一方面,有些分支的当前划分虽不能提升泛化性能、甚至可能导致泛化性能暂时下降,但在其基础上进行的后续划分却有可能导致性能显著提高;预剪枝基于贪心本质禁止这些分支展开,给预剪枝决策树带来了欠拟合的风险。
后剪枝决策树通常比预剪枝决策树保留了更多的分支,一般情形下,后剪枝决策树的欠拟合风险很小,泛化性能往往由于预剪枝决策树。但后剪枝过程是在生成完全决策树之后进行的,并且要自底向上地对树中的所有非叶节点进行逐一考察,因此其训练时间开销比未剪枝决策树和预剪枝决策树都要大得多。

4.4 连续与缺失值

4.4.1 连续值处理

之前讨论的都是基于离散属性来生成决策树。由于连续属性的可取值数目不再有限,因此,不能直接根据连续属性的可取值来对结点进行划分。这时,连续属性离散化技术可派上用场,最简单的的策略是采用二分法对连续属性进行处理。

4.4.2 缺失值处理

4.5 多变量决策树

与传统的单变量决策树不同,在多变量决策树的学习过程中,不是为每个非叶节点寻找一个最优划分属性,而是试图建立一个合适的线性分类器。若能使用斜的划分边界,如图所示,决策树模型将大为简化。多变量决策树就是能实现这样的斜划分甚至更复杂划分的决策树。
在这里插入图片描述
一个典型的多变量决策树如图所示
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/24031.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

全网最全斗音短视频新老账号起号技巧

大家好,我是我赢助手,专注于自媒体短视频去水印、去重和文案提取运营。 今天给大家分享下全网最全斗音短视频新老账号起号技巧 1、清理手机(手机登录新斗音号才需要清理) 安卓:打开设置-应用管理-斗音短视频-储存占用-清除缓存-卸载 双清方法:先在斗…

同花顺_代码解析_技术指标_Z_1

本文通过对同花顺中现成代码进行解析,用以了解同花顺相关策略设计的思想 目录 ZJ_01 ZJ_02 ZJ_05 ZMMZB ZNZ_ASR ZNZ_BYQD ZNZ_CBAND ZNZ_CBW ZNZ_CBXQD ZNZ_CKD ZNZ_CMACD ZNZ_CMGL ZNZ_CYBB ZJ_01 波段之星 "波段之星"指标为图形化指标。…

C---链表

目录链表的遍历计算链表节点个数查找结点节点后插入新节点节点前插入新节点1.目标节点为头节点 (引起链表头变化)2.目标节点不是头节点节点前插入新节点(两种情况)完整版删除节点课外知识:gcc ... -g1.删除头节点2.删的…

CS224W 6 Graph Neural Networks

目录 引入 node embedding Deep Graph Encoders的引入 Basics of Deep Learning Deep Learning for Graphs ​编辑A Naive Approach GCN GCN的基本idea Aggregate Neighbors 训练GCN Unsupervised Training Supervised Training Oview 整体流程 Inductive capabil…

等保三级,多级等保认证的一点了解

2022年11月21日10:28:28 信息安全等级保护管理办法 信息系统的安全保护等级分为以下五级: 第一级,信息系统受到破坏后,会对公民、法人和其他组织的合法权益造成损害,但不损害国家安全、社会秩序和公共利益。 第二级,信…

c++ 之安装opencv显示图片

额,要把yolo+pose+class从python转成c++,一整头大,从头开始试。 win11 + vs2022 c++_v14 + opencv4.6.0 安装opencv 从官网下载OpenCV https://opencv.org/releases/ 我是windows系统,没啥好说的,就是下个exe然后安装。 我是装在 D:\Program Files (x86)\ 目录下,之后…

(一)逻辑回归及其代价函数 --- 吴恩达深度学习笔记

逻辑回归 — 适用于二分类问题 使用逻辑回归算法会得到的输出标签y,y在监督问题中全是0或者1,因此这是一种针对二分类问题的算法。 给定的输入特征向量x和一幅图像对应,我们希望识别这是否是一张猫的图片。因此我们想要一种算法能够输出一个…

CRDB-事务层知识点

事务层负责维护事务的原子性,确保事务中的所有操作都被提交或中止。此外,事务层在事务之间维护可序列化的隔离—这意味着事务与其他事务的影响完全隔离。尽管多个事务可能同时进行,但每个事务的体验就像每次只运行一个事务—可序列化的隔离级…

PyTorch实现DCGAN(生成对抗网络)生成新的假名人照片实战(附源码和数据集)

需要数据集和源码请点赞关注收藏后评论区留言~~~ 一、生成对抗网络(GAN) GAN(生成对抗网络)是用于教授DL模型以捕获训练数据分布的框架,因此可以从同一分布中生成新数据。它们由两个不同的模型组成,生成器…

52、ElasticSearch 简单查询

1、DSL Query 分类2、DSL Query 基础语法 1、match_all,查询所有 2、全文检索查询 4、精确查询 5、地图查询 3、总结分析 本章学习了全文检索查询、精确查询、地图查询等。 1、全文检索查询: match:通过指定字段查询,不允许使用…

Activity、Fragment之间的传值

1、Activity和Activity之间传值 1、使用Intent 2、使用Intent结合Bundle IntentBundle 3、传自定义对象实现(实现Serialzable接口,性能较差,系统自动处理) 传自定义对象 4、传自定义对象(实现Parcelable,性能较好…

nginx 单向链表

ngx_list_t是Nginx封装的链表容器,它在Nginx中使用得很频繁,例如HTTP的头部就是用 ngx_list_t来存储的。当然,C语言封装的链表没有C或Java等面向对象语言那么容易理解。 ngx_list_t单向链表与ngx_queue_t双向链表是完全不同的,它是…

小程序直播系统开发制作_分享视频直播系统开发对企业的好处

许多小伙伴可能会感到困惑,直播小程序怎么制作,有直播小程序制作教程吗?为什么选择直播小程序,它会给企业带来什么好处?下面小编给大家一一解答。 一、小程序直播系统开发制作教程 ① 进入开发工具选择所在行业的模板…

Multigrid reinforcement learning with reward shaping

摘要 基于势能的奖励塑形已被证明是提高强化学习agent收敛速度的有效方法。 这是一种以原则性方式将背景知识纳入时间差分学习的灵活技术。然而,问题仍然是如何计算用于塑形给予学习agent的奖励的势能。在本文中,我们提出了一种通过状态空间离散化来解决…

计算机毕业设计java+ssm的高校科研仪器共享平台-计算机毕业设计

项目介绍 高校科研仪器共享平台,是一个学校内部提供信息管理的平台,是完全的,高速的,开放的,其核心思想是提供一个以自然语言为主的用户界面,让用户能够更好的刚加方便快捷的管理科研仪器信息的一个渠道和…

解决雪花算法生成的ID传输前端后精度丢失

本章目录: 问题描述解决方案 修改数据库字段配置MVC全局消息转换器修改Result类一、问题描述 在用雪花算法生成的ID传输到前端时,会出现后三位精度丢失 可以看到,我们得到的response为1594605819398193154 而前端展示的为159460581939819…

3 Minute Thesis (3MT)

1 定义 资料来源:https://zhuanlan.zhihu.com/p/63325983?utm_id0 3MT原则:要把博士课题介绍给一个受过高等教育但没有专业背景的人并阐述它的重要性。 定义:三分钟论文(3MT)是一个学术比赛,帮助当前的研究生培养有效的演讲和沟…

[附源码]计算机毕业设计JAVA基于web的电子产品网络购物平台

[附源码]计算机毕业设计JAVA基于web的电子产品网络购物平台 项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术:…

MyBatis搭建

目录 1.我的开发环境 2.创建maven工程 (1)打包方式 : jar (2)引入依赖 3.创建MyBatis的核心配置文件 4.创建mapper接口 5.创建MyBatis的映射文件 1.映射文件的命名规则: 2.MyBatis中可以面向接口操作数据 , 要保证两个一致 : 映射文件官方示例: 6.执行配置文件中的SQL…

HC-05蓝牙模块--------手机与STM32通信(代码编写)(上位机配置)保姆级教程

⏩ 大家好哇!我是小光,嵌入式爱好者,一个想要成为系统架构师的大三学生。 ⏩因为之前无论是电赛还是做项目,都用到了蓝牙模块,如:手机和stm32的通信,电赛中的双车通信,还是遥感小车的…