决策树(理论知识3)

目录

  • 评选算法
    • 信息增益( ID3 算法选用的评估标准)
    • 信息增益率( C4.5 算法选用的评估标准)
    • 基尼系数( CART 算法选用的评估标准)
    • 基尼增益
    • 基尼增益率

评选算法

决策树学习的关键在于:如何选择最优划分属性。一般而言,随着划分过程的不断进行,我们自然希望决策树各分支结点所包含的样本尽可能属于同一类别,即结点的 “纯度” (purity) 越来越高。下面介绍几类较为主流的评选算法。

信息增益( ID3 算法选用的评估标准)

信息增益 𝑔(𝐷, 𝑋) :表示某特征 𝑋 使得数据集 𝐷 的不确定性减少程度,定义为集合 𝐷 的熵与在给定特征 𝑋 的条件下 𝐷 的条件熵 𝐻(𝐷 | 𝑋) 之差,即
g ( D , X ) = H ( D ) − H ( D ∣ X ) g(D,X)=H(D)−H(D|X) g(D,X)=H(D)H(DX)

从该式可以看出,信息增益表达了样本数据在被分类后的专一性。因此,它可以作为选择当前最优特征的一个指标。

根据前面的计算结果,可知集合 𝐷 的熵 𝐻(𝐷) = 0.6931 ,特征 “天气”、“温度”、“风速”、“湿度” 的条件熵分别为 𝐻(D | X天气) = 0.3961 、𝐻(D | X温度) = 0.6931、𝐻(D | X风速) = 0.5983、𝐻(D | X湿度) = 0.6315。根据这些数据,可以算出全部特征在被用于分类时,各自的信息增益:

g ( D ∣ X 天气 ) = H ( D ) − H ( D ∣ X 天气 ) = 0.6931 − 0.3961 = 0.2970 g ( D ∣ X 温度 ) = H ( D ) − H ( D ∣ X 温度 ) = 0.6931 − 0.6931 = 0.0000 g ( D ∣ X 风速 ) = H ( D ) − H ( D ∣ X 风速 ) = 0.6931 − 0.5983 = 0.0948 g ( D ∣ X 湿度 ) = H ( D ) − H ( D ∣ X 湿度 ) = 0.6931 − 0.6315 = 0.0616 g(D|X天气)=H(D)−H(D∣X天气)=0.6931−0.3961=0.2970 \\ g(D|X温度)=H(D)−H(D∣X温度)=0.6931−0.6931=0.0000\\ g(D|X风速)=H(D)−H(D∣X风速)=0.6931−0.5983=0.0948\\ g(D|X湿度)=H(D)−H(D∣X湿度)=0.6931−0.6315=0.0616 g(DX天气)=H(D)H(DX天气)=0.69310.3961=0.2970g(DX温度)=H(D)H(DX温度)=0.69310.6931=0.0000g(DX风速)=H(D)H(DX风速)=0.69310.5983=0.0948g(DX湿度)=H(D)H(DX湿度)=0.69310.6315=0.0616

上面各特征求得的信息增益中,“天气” 特征对应的是最大的。也就是说,如果将 “天气” 作为决策树的第一个划分特征,系统整体的熵值将降低 0.297,是所有备选特征中效果最好的。因此,根据 “学校举办运动会的历史数据” 构建决策树时,根节点最好取 “天气” 特征。

接下来,在 “晴天” 中的数据将按上面的流程继续执行,直到构建好一棵完整的决策树(或达到指定条件)。不过此时,备选特征只剩下 “温度”、“风速” 和 “湿度” 3 项(往后,每当决策树的深度加 1 时,都会减少一个)。

信息增益率( C4.5 算法选用的评估标准)

以信息增益作为划分数据集的特征时,其偏向于选择取值较多的特征。比如,当在学校举办运动会的历史数据中加入一个新特征 “编号” 时,该特征将成为最优特征。因为给定 “编号” 就一定知道那天是否举行过运动会,因此 “编号” 的信息增益很高。
但实际我们知道,“编号” 对于类别的划分并没有实际意义。故此,引入信息增益率。

在这里插入图片描述
信息增益率 𝑔𝑅(𝐷, 𝑋) 定义为其信息增益 𝑔(𝐷, 𝑋) 与数据集 𝐷 在特征 𝑋 上值的熵 𝐻𝑋(𝐷) 之比,即:
g R ( D , X ) = g ( D , X ) H X ( D ) g_R(D,X)=\frac{g(D,X)}{H_X(D)} gR(D,X)=HX(D)g(D,X)

其中 H x ( D ) = − ∑ i = 1 k ∣ D i ∣ ∣ D ∣ log ∣ D i ∣ ∣ D ∣ Hx(D)=-\sum_{i=1}^k{\frac{|D_i|}{|D|}\text{log}\frac{|D_i|}{|D|}} Hx(D)=i=1kDDilogDDi,k是特征 X 的取值类别个数。
从上式可以看出,信息增益率考虑了特征本身的熵(此时,当某特征取值类别较多时, g R ( D , X ) g_R(D, X) gR(D,X)式中的分母也会增大),从而降低了 “偏向取值较多的特征” 这一影响。根据该式,可得到基于各特征划分的信息增益率如下:

按天气划分:
在这里插入图片描述

按温度划分:
在这里插入图片描述
按风速划分:
在这里插入图片描述
按湿度划分:

在这里插入图片描述
从上面的结果可以看出,信息增益率能明显降低取值较多的特征偏好现象,从而更合理地评估各特征在划分数据集时取得的效果。因此,信息增益率是现阶段用得较多的一种算法。

基尼系数( CART 算法选用的评估标准)

从前面的讨论不难看出,无论是 ID3 还是 C4.5 ,都是基于信息论的熵模型出发而得,均涉及了大量对数运算。能不能简化模型同时又不至于完全丢失熵模型的优点呢?分类回归树(Classification and Regression Tree,CART)便是答案,它通过使用基尼系数来代替信息增益率,从而避免复杂的对数运算。基尼系数代表了模型的不纯度,基尼系数越小,则不纯度越低,特征越好。注:这一点和信息增益(率)恰好相反。

在分类问题中,假设有 k 个类别,且第 k 个类别的概率为 p k p_k pk,则基尼系数为:

G i n i ( p ) = ∑ i = 1 k p i ( 1 − p i ) = 1 − ∑ i = 1 k p i 2 Gini(p) =\sum_{i=1}^k{p_i(1-p_i)}=1-\sum_{i=1}^k{p_i^2} Gini(p)=i=1kpi(1pi)=1i=1kpi2

对于给定数据集D,假设有k个类别,且第k个类别的数量为 C k C_k Ck,则该数据集的基尼系数为:

G i n i ( D ) = ∑ i = 1 k ∣ C i ∣ ∣ D ∣ ( 1 − ∣ C i ∣ ∣ D ∣ ) = 1 − ∑ i = 1 k ( ∣ C i ∣ ∣ D ∣ ) 2 Gini(D)=\sum_{i=1}^k{\frac{|C_i|}{|D|}(1-\frac{|C_i|}{|D|})} =1-\sum_{i=1}^k{(\frac{|C_i|}{|D|})^2} Gini(D)=i=1kDCi(1DCi)=1i=1k(DCi)2

从上式可以看出,基尼系数表征了样本集合里一个随机样本分类错误的平均概率。例如:

在这里插入图片描述

如果数据集D根据特征X的取值将其划分为 D 1 , D 2 , … , D m {D_1 , D_2 , … , D_m} D1,D2,,Dm ,则在特征D的条件下,划分后的集合D的基尼系数为:
G i n i ( D , X ) = ∑ i = 1 k ∣ C i ∣ ∣ D ∣ G i n i ( D i ) Gini(D,X)=\sum_{i=1}^k{\frac{|C_i|}{|D|}}Gini(D_i) Gini(D,X)=i=1kDCiGini(Di)

由于基尼系数Gini(D)表示集合D的不确定性,则基尼系数Gini(D,X)表示 “基于指定特征X进行划分后,集合D的不确定性”。
该值越大,就表示数据集D的不确定性越大,也就说明以该特征进行划分越容易分乱。基于前面各特征对数据集的划分,可得到其对应的基尼系数为:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

基尼增益

同信息增益一样,如果将数据集D的基尼系数减去数据集D根据特征X进行划分后得到的基尼系数就得到基尼增益(系数):
G ( D , X ) = G i n i ( D ) − G i n i ( D , X ) G(D,X) =Gini(D) -Gini(D,X) G(D,X)=Gini(D)Gini(D,X)

显然,采用越好的特征进行划分,得到的基尼增益也越大。基于前面各特征对数据集的划分,可得到其对应的基尼增益。

步骤一:先算出初始数据集合D的基尼系数。

G ( D ) = 1 − ∑ i = 1 2 ( ∣ C i ∣ ∣ D ∣ ) 2 = 1 − ( ( 7 14 ) 2 + ( 7 14 ) 2 ) = 0.5000 G(D) =1-\sum_{i=1}^2{(\frac{|C_i|}{|D|})^2}=1-((\frac{7}{14})^2 +(\frac{7}{14})^2)=0.5000 G(D)=1i=12(DCi)2=1((147)2+(147)2)=0.5000

步骤二:计算基尼增益

在这里插入图片描述
可见,基尼增益在处理诸如 “编号” 这一类特征时,仍然会认为其是最优特征(此时,可采取类似信息增益率的方式,选用基尼增益率 )。但对常规特征而言,基尼增益的合理性还是较优的。

基尼增益率

基尼增益率 G R ( D , X ) G_R(D,X) GR(D,X)定义为其尼基增益G(D,X)与数据集D在特征X上的取值个数之比,即:
G R ( D , X ) = G ( D , X ) ∣ D X ∣ G_R(D,X) =\frac{G(D,X)}{|D_X|} GR(D,X)=DXG(D,X)

容易看出,基尼增益率考虑了特征本身的基尼系数(此时,当某特征取值类别较多时, G R ( D , X ) G_R(D,X) GR(D,X)式中的分母也会增大),从而降低了 “偏向取值较多的特征” 这一影响。根据该式,可得到基于各特征划分的基尼增益率如下:

在这里插入图片描述
从上面的结果可以看出,基尼增益率能明显降低取值较多的特征偏好现象,从而更合理地评估各特征在划分数据集时取得的效果。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Echarts连接数据库,实时绘制图表详解

文章目录 Echarts连接数据库,实时绘制图表详解一、引言二、步骤一:环境准备与数据库连接1、环境搭建2、数据库连接 三、步骤二:数据获取与处理1、查询数据库2、数据处理 四、步骤三:ECharts图表配置与渲染1、配置ECharts选项2、动…

Odoo 免费开源 ERP:通过 JavaScript 创建对话框窗口的技术实践分享

作者 | 老杨 出品 | 上海开源智造软件有限公司(OSCG) 概述 在本文中,我们将深入研讨如何于 Odoo 18 中构建 JavaScript(JS)对话框或弹出窗口。对话框乃是展现重要讯息、确认用户操作以及警示用户留意警告或错误的行…

flask-admin的modelview 实现list列表视图中扩展修改状态按钮

背景: 在flask-admin的模型视图(modelview 及其子类)中如果不想重构UI视图,那么就不可避免的出现默认视图无法很好满足需求的情况,如默认视图中只有“新增”,“编辑”,“选中的”三个按钮。 材…

低空经济的地理信息支撑:构建安全、高效的飞行管理体系

随着无人机等低空飞行器的广泛应用,低空空域管理的重要性日益凸显。地理信息技术作为低空空域管理的重要支撑,对于保障低空经济的健康发展具有不可替代的作用。 地理信息技术在低空空域管理中的作用 地理信息技术在低空空域管理中扮演着关键角色&#x…

圣诞节文化交流会在洛杉矶成功举办

洛杉矶——12月21日,备受期待的“圣诞节文化交流会(Christmas Art and Cultural Exchange Fair)”在尔湾成功举办。本次活动由M.A.D, ACSDA Youth Committee, GlowStar Art Foundation共同举办,此次活动以文化交流为主题&#xff…

什么样的LabVIEW控制算自动控制?

自动控制是指系统通过预先设计的算法和逻辑,在无人工干预的情况下对被控对象的状态进行实时监测、决策和调整,达到预期目标的过程。LabVIEW作为一种图形化编程工具,非常适合开发自动控制系统。那么,什么样的LabVIEW控制算作“自动…

打造独特的博客封面:动态封面设置指南

如何设置你的专属封面 1先找到一个好的壁纸 以下是好用的壁纸网站 花瓣网 千图网 包图网 WallHere 壁纸 浏览器搜索可画 可画 或者是下载可画的PC端软件 我这里使用的是可画的PC端软件 我们选择这个 单图海报(横板 - 1200 * 726 像素) 这是我们进入的页面 我们点击…

快速解决oracle 11g中exp无法导出空表的问题

在一些生产系统中,有些时候我们为了进行oracle数据库部分数据的备份和迁移,会使用exp进行数据的导出。但在实际导出的时候,我们发现导出的时候,发现很多空表未进行导出。今天我们给出一个快速解决该问题的办法。 一、问题复现 我…

机器人加装电主轴【铣削、钻孔、打磨、去毛刺】更高效

机器人加装电主轴进行铣削、钻孔、打磨、去毛刺等作业,展现出显著的优势,并能实现高效加工。 1. 高精度与高效率 电主轴特点:高速电主轴德国SycoTec的产品,转速可达100000rpm,功率范围广,精度≤1μm&#…

详细介绍如何使用rapidjson读取json文件

本文主要详细介绍如何使用rapidjson库来实现.json文件的读取,分为相关基础介绍、结合简单示例进行基础介绍、结合复杂示例进行详细的函数实现介绍等三部分。 一、相关基础 1、Json文件中的{} 和 [] 在 JSON 文件中,{} 和 [] 分别表示不同的数据结构&…

TGRS | 可变形傅里叶卷积用于遥感道路分割

题目:Fourier-Deformable Convolution Network for Road Segmentation From Remote Sensing Images 期刊:IEEE Transactions on Geoscience and Remote Sensing 论文:https://ieeexplore.ieee.org/document/10707598/ 代码:htt…

Linux复习4——shell与文本处理

认识vim编辑器 #基本语法格式: vim 文件名 •如果文件存在,进入编辑状态对其进行编辑 •如果文件不存在,创建文件并进入编辑状态 例: [rootlocalhosttest]# vim practice.txt #Vim 编辑器三种模式: 命令模式&a…

GIT与github的链接(同步本地与远程仓库)

1.官网下载GIT Git - 安装 Git 2.GIT生成密钥 2.1 打开gitbash配置邮箱与用户名(非初次使用GIT跳过这一步) git config --global user.name "你的用户名" git config --global user.email "你的邮箱" 2.2 生成ssh密匙 1&#xff0…

小程序租赁系统开发指南与实现策略

内容概要 在如今这个快节奏的时代,小程序租赁系统的开发正逐渐成为许多商家提升服务质量与效率的重要选择。在设计这样一个系统时,首先要明白它的核心目标:便捷、安全。用户希望在最短的时间内找到需要的物品,而商家则希望通过这…

深度学习之超分辨率算法——FRCNN

– 对之前SRCNN算法的改进 输出层采用转置卷积层放大尺寸,这样可以直接将低分辨率图片输入模型中,解决了输入尺度问题。改变特征维数,使用更小的卷积核和使用更多的映射层。卷积核更小,加入了更多的激活层。共享其中的映射层&…

vue3项目history路由模式部署上线405、刷新404问题(包括部分页面刷新404问题)

一、找不到js模块 解决方法:配置Nginx配置文件: // root /your/program/path/dist root /www/wwwroot/my_manage_backend_v1/dist;二、刷新页面导致404问题(Not found) 经过一系列配置后发现进入页面一切正常,包括路由前进和回退&#xff0…

微服务篇-深入了解 XXL-JOB 分布式任务调度的具体使用(XXL-JOB 的工作流程、框架搭建)

🔥博客主页: 【小扳_-CSDN博客】 ❤感谢大家点赞👍收藏⭐评论✍ 文章目录 1.0 XXL-JOB 调度中心概述 1.2 XXL-JOB 工作流程 1.3 Cron 表达式调度 2.0 XXL-JOB 框架搭建 2.1 XXL-JOB 调度中心的搭建 2.2 XXL-JOB 执行器的搭建 2.3 使用调度中心…

JS中若干相似特性的区别

Object.is与的区别? 其他时候都相等 字符串concat()和号有什么区别? 数组at和直接索引区别 at里是负值,计算方法是:数组的长度加这个负值,得到的数作为索引值 substring与slice的区别 substring是负值,则视为0,等于全部复制 slice是负值,则从后往前复制,-2就是复制最后2个字…

Fuel库实战:下载失败时的异常处理策略

Fuel库作为一个轻量级的Kotlin HTTP客户端库,因其简洁的API和强大的功能而受到开发者的青睐。然而,网络请求总是伴随着失败的风险,比如网络不稳定、服务器错误、资源不存在等。因此,合理地处理这些异常情况对于提升用户体验和应用…