当前位置: 首页 > news >正文

决策树最优属性选择



本文以西瓜数据集为例演示决策树使用信息增益选择最优划分属性的过程

在这里插入图片描述

西瓜数据集下载:传送门

首先计算根节点的信息熵:

  • 数据集分为好瓜、坏瓜,所以|y|=2
  • 根结点包含17个训练样例,其中好瓜共计8个样例,所占比例为8/17
  • 坏瓜共计9个样例,所占比例为9/17

将数据带入信息熵公式,即可得到根结点的信息熵:

E n t ( D ) = − ( 8 17 log ⁡ 2 8 17 + 9 17 log ⁡ 2 9 17 ) = 0.998 Ent(D)=-\left( \frac{8}{17}\log_2\frac{8}{17}+\frac{9}{17}\log_2\frac{9}{17} \right) =0.998 Ent(D)=(178log2178+179log2179)=0.998

以属性色泽为例,其对应3个数据子集:

  • D1(色泽=青绿),包含{1,4,6,10,13,17}共6个样例,其中好瓜样例为{1,4,6},比例为3/6,坏瓜样例为{10,13,17},比例为3/6。将数据带入信息熵计算公式即可得到该结点的信息熵:1.000
  • D2(色泽=乌黑),包含{2,3,7,8,9,15}共6个样例,其中好瓜样例为{2,3,7,8},比例为4/6,坏瓜样例为{9,15},比例为2/6。将数据带入信息熵计算公式即可得到该结点的信息熵:0.918
  • D1(色泽=浅白),包含{5,11,12,14,16}共5个样例,其中好瓜样例为{5},比例为1/5,坏瓜样例为{11,12,14,16},比例为4/5。将数据带入信息熵计算公式即可得到该结点的信息熵:0.722

则计算色泽属性的信息增益为:

G a i n ( D , 色泽 ) = E n t ( D ) − ∑ v = 1 3 ∣ D v ∣ ∣ D ∣ E n t ( D ) = 0.998 − ( 6 17 ∗ 1.000 + 6 17 ∗ 0.918 + 5 17 ∗ 0.722 ) = 0.109 Gain(D,色泽)=Ent(D)-\sum_{v=1}^{3}\frac{|D^v|}{|D|}Ent(D) \\ =0.998-\left( \frac{6}{17} * 1.000+\frac{6}{17}*0.918+\frac{5}{17}*0.722 \right) =0.109 Gain(D,色泽)=Ent(D)v=13DDvEnt(D)=0.998(1761.000+1760.918+1750.722)=0.109

同样的方法,计算其他属性的信息增益为:
G a i n ( D , 根蒂 ) = 0.143 G a i n ( D , 敲声 ) = 0.141 G a i n ( D , 纹理 ) = 0.381 G a i n ( D , 脐部 ) = 0.289 G a i n ( D , 触感 ) = 0.006 Gain(D,根蒂)=0.143 \\ Gain(D,敲声)=0.141 \\ Gain(D,纹理)=0.381 \\ Gain(D,脐部)=0.289 \\ Gain(D,触感)=0.006 \\ Gain(D,根蒂)=0.143Gain(D,敲声)=0.141Gain(D,纹理)=0.381Gain(D,脐部)=0.289Gain(D,触感)=0.006

对比不同属性,我们发现纹理属性的信息增益最大,因此,纹理属性被选为划分属性:清晰{1,2,3,4,5,6,8,10,15}、稍糊{7,9,13,14,17}、模糊{11,12,16}

下一步,我们再看纹理=清晰的节点分支,该节点包含的样例集合D1中有编号为{1,2,3,4,5,6,8,10,15}共计9个样例,此时可用属性集合为{色泽,根蒂,敲声,脐部,触感},纹理不会再作为划分属性,我们以同样的方式再计算各属性的信息增益为:

G a i n ( D , 色泽 ) = 0.043 G a i n ( D , 根蒂 ) = 0.458 G a i n ( D , 敲声 ) = 0.331 G a i n ( D , 脐部 ) = 0.458 G a i n ( D , 触感 ) = 0.458 Gain(D,色泽)=0.043 \\ Gain(D,根蒂)=0.458 \\ Gain(D,敲声)=0.331 \\ Gain(D,脐部)=0.458 \\ Gain(D,触感)=0.458 \\ Gain(D,色泽)=0.043Gain(D,根蒂)=0.458Gain(D,敲声)=0.331Gain(D,脐部)=0.458Gain(D,触感)=0.458

从上图可以看出根蒂、脐部、触感3个属性均取得了最大的信息增益,此时可任选其一作为划分属性。同理,对每个分支结点进行类似操作,即可得到最终的决策树


相关文章:

  • 2024最新 Jenkins + Docker 实战教程(四) - 编写自己的Springboot项目实现自动化部署
  • Apache JMeter操作
  • linux使用dockerCompose脚本化部署镜像
  • 简单采用windows批处理命令批量合并命名安卓B站缓存视频
  • jenkins自动化部署详解
  • Tina-Linux -- 4. LVGL 8.3移植
  • 【全国青少年信息素养大赛算法创意初中组押题卷】
  • 防火墙最新技术汇总
  • 【学习笔记】后端(Ⅰ)—— NodeJS(Ⅱ)
  • Centos7.9上安装Oracle 11gR2 RAC 三节点(ASMlib管理asm磁盘)
  • Vue学习穿梭框Transfer组件
  • 贪心算法:划分字母区间
  • 包装类..
  • 如何彻底搞懂迭代器(Iterator)设计模式?
  • 反序列化漏洞(JBoss、apache log4、apache Shiro、JWT)Weblogic未授权访问、代码执行、任意上传
  • [rust! #004] [译] Rust 的内置 Traits, 使用场景, 方式, 和原因
  • Angular Elements 及其运作原理
  • express + mock 让前后台并行开发
  • Flannel解读
  • JavaScript-Array类型
  • JavaScript设计模式与开发实践系列之策略模式
  • laravel with 查询列表限制条数
  • React+TypeScript入门
  • Work@Alibaba 阿里巴巴的企业应用构建之路
  • 回顾2016
  • 技术胖1-4季视频复习— (看视频笔记)
  • 前端自动化解决方案
  • 深度解析利用ES6进行Promise封装总结
  • 一起来学SpringBoot | 第三篇:SpringBoot日志配置
  • 鱼骨图 - 如何绘制?
  • 原生js练习题---第五课
  • (2024,Flag-DiT,文本引导的多模态生成,SR,统一的标记化,RoPE、RMSNorm 和流匹配)Lumina-T2X
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (剑指Offer)面试题41:和为s的连续正数序列
  • (九)信息融合方式简介
  • (蓝桥杯每日一题)love
  • (亲测有效)推荐2024最新的免费漫画软件app,无广告,聚合全网资源!
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (最优化理论与方法)第二章最优化所需基础知识-第三节:重要凸集举例
  • .form文件_SSM框架文件上传篇
  • .NET gRPC 和RESTful简单对比
  • .net(C#)中String.Format如何使用
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈
  • .netcore 如何获取系统中所有session_ASP.NET Core如何解决分布式Session一致性问题
  • .NET开发不可不知、不可不用的辅助类(三)(报表导出---终结版)
  • ?php echo ?,?php echo Hello world!;?
  • @RestControllerAdvice异常统一处理类失效原因
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(朱雀组)
  • [ 手记 ] 关于tomcat开机启动设置问题
  • [ 隧道技术 ] cpolar 工具详解之将内网端口映射到公网
  • [ 网络通信基础 ]——网络的传输介质(双绞线,光纤,标准,线序)
  • [BUUCTF NewStarCTF 2023 公开赛道] week4 crypto/pwn
  • [C#]C#学习笔记-CIL和动态程序集
  • [C#基础]说说lock到底锁谁?
  • [C++] 如何使用Visual Studio 2022 + QT6创建桌面应用