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

【机器学习】决策树-C4.5算法

1.C4.5算法 

        C4.5算法与ID3相似,在ID3的基础上进行了改进,采用信息增益比来选择属性。ID3选择属性用的是子树的信息增益,ID3使用的是熵(entropy, 熵是一种不纯度度量准则),也就是熵的变化值,而C4.5用的是信息增益率

2.信息增益率

        在ID3算法中,显然属性的取值越多,信息增益越大。为了避免属性取值个数的影响,C4.5算法从候选划分中找出信息增益高于平均水平的属性,再从中选出信息增益率(用信息增益除以该属性本身的固有值(Intrinsic value)最高的分类作为分裂规则。信息增益比本质就是在信息增益的基础之上乘上一个惩罚参数。特征个数较多时,惩罚参数较小;特征个数较少时,惩罚参数较大。信息增益比就等于惩罚参数 * 信息增益。

2-1 信息增益率

        信息增益率:增益率是用前面的信息增益Gain(D, a)和属性a对应的"固有值"(intrinsic value)的比值来共同定义的。属性 a 的可能取值数目越多(即 V 越大),则 IV(a) 的值通常会越大。

2-2 案例 

         根据‘天气’,‘温度’,‘湿度’,‘风速’四个属性判断活动是否进行(进行、取消)。

         该数据集有四个属性,属性集合A={ 天气,温度,湿度,风速}, 类别标签有两个,类别集合L={进行,取消}。

 a.计算类别信息熵

        类别信息熵表示的是所有样本中各种类别出现的不确定性之和。根据熵的概念,熵越大,不确定性就越大,把事情搞清楚所需要的信息量就越多。

 b.计算每个属性的信息熵
        每个属性的信息熵相当于一种条件熵。他表示的是在某种属性的条件下,各种类别出现的不确定性之和。属性的信息熵越大,表示这个属性中拥有的样本类别越不“纯”。

c.计算信息增益

        信息增益的 = 熵 - 条件熵,在这里就是 类别信息熵 - 属性信息熵,它表示的是信息不确定性减少的程度。如果一个属性的信息增益越大,就表示用这个属性进行样本划分可以更好的减少划分后样本的不确定性,当然,选择该属性就可以更快更好地完成我们的分类目标。

d.计算属性分裂信息度量
        用分裂信息度量来考虑某种属性进行分裂时分支的数量信息和尺寸信息,我们把这些信息称为属性的内在信息(instrisic information)。信息增益率用信息增益/内在信息,会导致属性的重要性随着内在信息的增大而减小(也就是说,如果这个属性本身不确定性就很大,那我就越不倾向于选取它),这样算是对单纯用信息增益有所补偿。

e.计算信息增益率

        天气的信息增益率最高,选择天气为分裂属性。发现分裂了之后,天气是“阴”的条件下,类别是”纯“的,所以把它定义为叶子节点,选择不“纯”的结点继续分裂。 

3.总结

3-1优点与改进

        C4.5算法是用于生成决策树的一种经典算法,是ID3算法的一种延伸和优化。C4.5算法对ID3算法主要做了一下几点改进:

        (1)通过信息增益率选择分裂属性,克服了ID3算法中通过信息增益倾向于选择拥有多个属性值的属性作为分裂属性的不足;

        (2)能够处理离散型和连续型的属性类型,即将连续型的属性进行离散化处理;

        (3)构造决策树之后进行剪枝操作;

        (4)能够处理具有缺失属性值的训练数据。 C4.5算法训练的结果是一个分类模型,这个分类模型可以理解为一个决策树,分裂属性就是一个树节点,分类结果是树的结点。每个节点都有左子树和右子树,结点无左右子树。

        (5)C4.5采用二分法处理连续特征,将连续特征进行排列,将连续两个值的中间值作为分裂节点,将小于该值和大于该值的样本分为两个类别,找到信息增益最大的分裂点,本质上还是用的离散特征。需注意的是,与离散属性不同,若当前节点划分属性为连续属性,该属性还可作为其后代节点的划分属性。

        (6)在属性值缺失的情况下划分属性,将数据集分成两部分:没有缺失值的部分、有缺失值的部分。对每个样本设置一个权重,将没有缺失值的部分按照占据总样本的比例计算信息增益率,并乘上所占比例。

        (7)给定划分属性,若样本在该属性上缺失时,若样本x在划分属性a上的取值未知,则将x同时划入所有子节点,且样本权值按所占比例和样本权值进行调整。直观地看,这就是让同一个样本以不同的概率划入到不同的子节点中。

3-2 缺点

  1. 信息增益率采用熵的计算,里面有大量耗时的对数计算。
  2. 多叉树的计算效率不如二叉树高。
  3. 决策树模型容易过拟合,所以应该引入剪枝策略进行处理。

Reference:

        1.https://www.cnblogs.com/yuyingblogs/p/15319571.html

        2.决策树(ID3、C4.5与CART)——从信息增益、信息增益率到基尼系数_戎梓漩的博客-CSDN博客_cart id3 c4.5

相关文章:

【机器学习】决策树-C4.5算法

1.C4.5算法 C4.5算法与ID3相似,在ID3的基础上进行了改进,采用信息增益比来选择属性。ID3选择属性用的是子树的信息增益,ID3使用的是熵(entropy, 熵是一种不纯度度量准则),也就是熵的变化值&…...

actipro-winforms-controls-23.1.0 Crack

actipro-winforms一组用于构建漂亮的 Windows 窗体桌面应用程序的 UI 控件,用于构建 IDE 的高级停靠窗口、MDI、属性网格、树控件和文件夹/文件浏览器,用于常见数据类型、自动完成、屏蔽编辑和代码编辑的强大编辑器,功能区、图表、微型图表、…...

适合打游戏用的蓝牙耳机有哪些?吃鸡无延迟的蓝牙耳机推荐

现在手游的兴起,让游戏市场变得更加火爆,各种可以提高玩家体验的外设也越来越多,除了提升操作的外置按键与手柄外,能带来更出色音质与舒心使用的游戏耳机,整体氛围感更好,让玩家在细节上占据优势&#xff0…...

1000:入门测试题目[不一样的题解][85种写法]【A+B问题】

题目: 1000:入门测试题目 时间限制: 1000 ms 内存限制: 32768 KB 提交数: 262857 通过数: 158152 【题目描述】 求两个整数的和。 【输入】 一行,两个用空格隔开的整数。 【输出】 两个整数的和。 【输入样例】 2 3 【输出样例】…...

FastReport .NET 2023.1.13 Crack

FastReport .NET 使用来自 ADO .NET 数据源的数据。它可以排序和过滤数据行,使用主从关系和查找数据列。一切都可以通过点击几下鼠标来完成。 直接连接到 ADO、MS SQL 或基于 xml 的数据库。其他连接器可作为插件使用。 能够从 IEnumerable 类型的业务对象中获取数…...

unzip: cannot find zipfile directory in one of

下面是执行flutter doctor 后报错内容 End-of-central-directory signature not found. Either this file is not a zipfile, or it constitutes one disk of a multi-part archive. In the latter case the central directory and zipfile comment will be found on the last …...

RFC4543: Galois Message Authentication Code (GMAC);CONFIG_CRYPTO_GCM

在2010年这个算法被Linux社区加进来:说明算法还是挺重要,普遍使用。 commit 73c89c15b959adf06366722c4be8d2eddec0a529 Author: Tobias Brunner <tobias@strongswan.org> Date: Sun Jan 17 21:52:11 2010 +1100crypto: gcm - Add RFC4543 wrapper for GCMThis patc…...

【YOLOv5】 02-标注图片,训练并使用自己的模型

在上一篇文章中&#xff0c;我们完成了YOLOv5的安装和测试。如果想检测自定义目标&#xff0c;就需要用到LabelImg来对图片打标签&#xff0c;本篇文章介绍了LabelImg安装与使用&#xff0c;以及如何训练并使用自己的模型。一、安装LabelImg输入如下命令进行安装&#xff1a;pi…...

2023.2.15日学习内容(用户的增删改查)

1&#xff0c;如果前端时间需要年月日&#xff0c;不需要时分秒&#xff0c;则一般情况下再数据库里面操作即可2.正常情况下&#xff0c;以后所有的查询都不能用* 查询所有列3.删除思路逻辑1&#xff09;点击删除按钮需要对其进行监听2&#xff09;对于重要的信息删除应该给用户…...

车载以太网 - 测试用例设计 - 时间参数 - 11

前面已经介绍过DoIP相关的时间参数信息,然而对于时间参数信息相关的测试用例该如何设计呢?个人认为这是用例中最好设计的一类,这类的用例只需要按照定义去设计写测试用例即可,难的是自动化脚本开发和手动测试执行。毕竟时间参数一般都是毫秒级的验证,就算是秒级的我们也很…...

【C#个人错题笔记】

观前提醒 记录一些我不会或者少见的内容&#xff0c;不一定适合所有人 字符串拼接 int a3,b8; Console.WriteLine(ab);//11 Console.WriteLine("ab");//ab Console.WriteLine(a""b);//38 Console.WriteLine("ab"ab);//ab38 Console.WriteLine…...

JavaScript刷LeetCode拿offer-树的遍历

什么是树 一种分层数据的抽象模型。前端工作中常见的树包括&#xff1a;DOM树&#xff0c;级联选择&#xff0c;树形控件JS中没有树&#xff0c;可以用Object和Array构建树树的常用操作&#xff1a;深度/广度优先遍历&#xff0c;先中后序遍历 深度优先遍历 访问根节点对根节…...

《FPGA学习》->呼吸灯

&#x1f34e;与其担心未来&#xff0c;不如现在好好努力。在这条路上&#xff0c;只有奋斗才能给你安全感。你若努力&#xff0c;全世界都会为你让路。呼吸灯&#xff0c;简而言之就像人类呼吸一样&#xff0c;有节奏的让LED灯从&#xff1a;灭->微微亮->微亮->亮-&g…...

【大数据离线开发】7.4 HBase数据保存和过滤器

7.4 数据保存的过程 注意&#xff1a;数据的存储&#xff0c;都需要注意Region的分裂 HDFS&#xff1a;数据的平衡 ——> 数据的移动&#xff08;拷贝&#xff09;HBase&#xff1a;数据越来越多 ——> Region的分裂 ——> 数据的移动&#xff08;拷贝&#xff09; …...

CentOS7安装MariaDB步骤

文章目录1.配置MariaDB yum源2.安装MariaDBMariaDB数据库管理系统是MySQL的一个分支&#xff0c;主要由开源社区在维护&#xff0c;采用GPL授权许可。 MariaDB的目的是完全兼容MySQL&#xff0c;包括API和命令行&#xff0c;使之能轻松成为MySQL的代替品。 CentOS 6 或早期的版…...

软件测试13个最容易犯的错误

目录 一、 输入框测试 二、 搜索功能测试 三、 添加/修改功能 四、 删除功能 五、 上传图片功能测试 六、 查询结果列表 七、 返回键检查 八、 回车键检查 九、 刷新键检查 十、 直接URL链接检查&#xff08;盗链问题&#xff09; 十一、并发问题 十二、 业务流程测…...

华为OD机试真题Java实现【5键键盘的输出】真题+解题思路+代码(20222023)

🔥系列专栏 华为OD机试(Python)真题目录汇总华为OD机试(JAVA)真题目录汇总华为OD机试(C++)真题目录汇总华为OD机试(JavaScript)真题目录汇总文章目录 🔥系列专栏题目输入输出描述:示例1:示例2:解题思路代码实现运行结果:版权说明:题目...

化解射频和微波设计挑战的六个技巧

即使是最自信的设计人员&#xff0c;对于射频电路也往往望而却步&#xff0c;因为它会带来巨大的设计挑战&#xff0c;并且需要专业的设计和分析工具。这里将为您介绍六条技巧&#xff0c;来帮助您简化任何射频PCB 设计任务和减轻工作压力&#xff01; 1、保持完好、精确的射频…...

linux内核—进程调度(核心)

目录 核心函数__schedule() 处理过程 1、选择下一个进程 2、切换线程 1&#xff09;切换进程的虚拟地址空间 2&#xff09;切换寄存器 3&#xff09;执行清理工作 核心函数__schedule() 主要的调度程序 进入次函数的主要方法是&#xff1a; 1、显示阻塞&#xff1a;互…...

【STM32笔记】__WFI();进入不了休眠的可能原因(系统定时器SysTick一直产生中断)

【STM32笔记】__WFI()&#xff1b;进入不了休眠的可能原因&#xff08;系统定时器SysTick一直产生中断&#xff09; 【STM32笔记】低功耗模式配置及避坑汇总 前文&#xff1a; blog.csdn.net/weixin_53403301/article/details/128216064 【STM32笔记】HAL库低功耗模式配置&am…...

颠覆式Alienware设备控制:500KB轻量工具实现10倍性能提升与个性化体验

颠覆式Alienware设备控制&#xff1a;500KB轻量工具实现10倍性能提升与个性化体验 【免费下载链接】alienfx-tools Alienware systems lights, fans, and power control tools and apps 项目地址: https://gitcode.com/gh_mirrors/al/alienfx-tools 当你启动Alienware电…...

使用 Applications Manager 实现 AWS 云监控:保障业务应用高效运行

随着企业加速将应用和服务迁移至云端&#xff0c;Amazon Web Services&#xff08;AWS&#xff09;凭借其可扩展性、可靠性及成本效益&#xff0c;成为主流选择。然而&#xff0c;云环境日益复杂&#xff0c;企业亟需强大的监控系统&#xff0c;以确保应用稳定运行。Applicatio…...

用快马AI快速构建web终端原型:复刻xshell免费版核心体验

最近在尝试复刻xshell免费版的核心体验&#xff0c;想做一个轻量级的web终端原型。作为一个经常需要远程连接服务器的开发者&#xff0c;xshell的简洁高效一直让我印象深刻。这次我用InsCode(快马)平台快速实现了这个想法&#xff0c;整个过程特别顺畅&#xff0c;分享下我的实…...

基于redis实现限流逻辑

固定窗口计数器 在固定时间窗口内&#xff0c;记录请求次数&#xff0c;如果超过阈值就拒绝&#xff0c;否则放行。 优点&#xff1a;实现简单&#xff0c;性能极高实现方式&#xff1a;incr命令和expire命令缺点&#xff1a;临界突发问题&#xff0c;时间窗口固定&#xff0c;…...

AI辅助开发新范式:让快马AI成为你的智能代码库与协作者

最近在整理自己的代码库时&#xff0c;发现一个痛点&#xff1a;随着项目积累&#xff0c;很多实用的代码片段散落在各处&#xff0c;虽然写了注释&#xff0c;但时间久了还是很难快速找到需要的部分。于是萌生了一个想法——开发一个AI辅助的代码片段管理工具。这个工具不仅能…...

3种突破窗口限制的高效方案:WindowResizer让桌面管理更自由

3种突破窗口限制的高效方案&#xff1a;WindowResizer让桌面管理更自由 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer 在数字化办公环境中&#xff0c;窗口尺寸管理直接影响工作效…...

Citra模拟器终极指南:免费畅玩3DS游戏的完整教程

Citra模拟器终极指南&#xff1a;免费畅玩3DS游戏的完整教程 【免费下载链接】citra A Nintendo 3DS Emulator 项目地址: https://gitcode.com/gh_mirrors/cit/citra 任天堂3DS模拟器Citra是一款开源的高性能游戏模拟工具&#xff0c;让PC用户能够流畅体验《精灵宝可梦》…...

Zotero-Better-Notes终极绘图功能指南:如何在学术笔记中创建可视化图表

Zotero-Better-Notes终极绘图功能指南&#xff1a;如何在学术笔记中创建可视化图表 【免费下载链接】zotero-better-notes Everything about note management. All in Zotero. 项目地址: https://gitcode.com/gh_mirrors/zo/zotero-better-notes 作为一名学术研究者&…...

3分钟搞定!为Word安装APA第7版参考文献样式的完整指南

3分钟搞定&#xff01;为Word安装APA第7版参考文献样式的完整指南 【免费下载链接】APA-7th-Edition Microsoft Word XSD for generating APA 7th edition references 项目地址: https://gitcode.com/gh_mirrors/ap/APA-7th-Edition 还在为学术论文的参考文献格式而烦恼…...

社区医院信息平台信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】

&#x1f4a1;实话实说&#xff1a;有自己的项目库存&#xff0c;不需要找别人拿货再加价&#xff0c;所以能给到超低价格。摘要 随着信息技术的快速发展&#xff0c;医疗行业对信息化管理的需求日益增长。传统的社区医院管理模式存在信息孤岛、数据冗余、效率低下等问题&#…...