机器学习|决策树|如何计算信息增益|方法总结

如是我闻 :那你说决策树这块还能考点啥呢,也就是算算属性的信息增益(Information Gain)了,

信息增益是一种评估特征(属性)在分类任务中重要性的方法,它基于熵的概念来计算。熵是一个衡量数据集中不确定性或混乱程度的指标。信息增益则是衡量在知道某个属性的信息之后,数据集不确定性减少的程度

下面我们通过一道小练习题来用心感受一下这类题:

问题描述

在这个问题中,数据集包含了三个特征(A、B、C)和一个分类标签,任务是计算属性A对于分类结果的信息增益值,以此评估A在预测结果中的有效性和重要性。

原始数据:

ABC标签 (L)
1101
1112
0011
0111

解题步骤

信息增益的计算过程分为三个主要步骤:

  1. 计算整体数据集的熵(Initial Entropy)
  2. 计算在特定属性条件下的条件熵(Conditional Entropy)
  3. 计算信息增益(Information Gain)

步骤 1: 计算整体数据集的熵(Initial Entropy)

数据使用:
  • 标签有三个1和一个2。
计算方法:
  • 概率
    • P ( L = 1 ) = 3 4 P(\text{L}=1) = \frac{3}{4} P(L=1)=43
    • P ( L = 2 ) = 1 4 P(\text{L}=2) = \frac{1}{4} P(L=2)=41
  • 熵公式
    • H ( L ) = − ( 3 4 log ⁡ 2 3 4 + 1 4 log ⁡ 2 1 4 ) = 0.811 H(\text{L}) = -\left(\frac{3}{4}\log_2\frac{3}{4} + \frac{1}{4}\log_2\frac{1}{4}\right)=0.811 H(L)=(43log243+41log241)=0.811
为什么要这么做

熵是衡量数据集混乱程度的指标。这一步提供了一个基准,让我们可以比较是否属性的选择能降低这种混乱程度。

步骤 2: 计算属性 A 的条件熵(Conditional Entropy)

数据使用:
  • A = 1 A=1 A=1 时:有两个结果,一个是1,另一个是2。
  • A = 0 A=0 A=0 时:有两个结果,都是1。
计算方法:
  • A = 1 A=1 A=1
    • P ( L = 1 ∣ A = 1 ) = 1 2 P(\text{L}=1 | A=1) = \frac{1}{2} P(L=1∣A=1)=21
    • P ( L = 2 ∣ A = 1 ) = 1 2 P(\text{L}=2 | A=1) = \frac{1}{2} P(L=2∣A=1)=21
    • H ( L ∣ A = 1 ) = − ( 1 2 log ⁡ 2 1 2 + 1 2 log ⁡ 2 1 2 ) = 1.0 H(\text{L}|A=1) = -\left(\frac{1}{2}\log_2\frac{1}{2} + \frac{1}{2}\log_2\frac{1}{2}\right)=1.0 H(LA=1)=(21log221+21log221)=1.0
  • A = 0 A=0 A=0
    • P ( L = 1 ∣ A = 0 ) = 1 P(\text{L}=1 | A=0) = 1 P(L=1∣A=0)=1
    • H ( L ∣ A = 0 ) = − ( 1 log ⁡ 2 1 ) = 0 H(\text{L}|A=0) = -(1\log_21) = 0 H(LA=0)=(1log21)=0 (所有结果都是1,所以熵为0)
为什么要这么做

条件熵 H ( L ∣ A ) H(\text{L}|A) H(LA) 表示已知属性 A 的值后,结果的不确定性。计算这个值是为了评估知道 A 后不确定性减少了多少。

步骤 3: 计算信息增益(Information Gain)

计算方法:
  • 信息增益公式
    • I G ( A ) = H ( L ) − H ( L ∣ A ) = 0.311 IG(A) = H(\text{L}) - H(\text{L}|A)=0.311 IG(A)=H(L)H(LA)=0.311
    • H ( L ∣ A ) = 1 2 H ( L ∣ A = 1 ) + 1 2 H ( L ∣ A = 0 ) = 0.5 H(\text{L}|A) = \frac{1}{2}H(\text{L}|A=1) + \frac{1}{2}H(\text{L}|A=0) =0.5 H(LA)=21H(LA=1)+21H(LA=0)=0.5
为什么要这么做

信息增益测量了在知道属性 A 的值之后,结果的不确定性减少了多少。如果信息增益高,意味着该属性在分类时非常有用,因为它能显著降低不确定性。

通过这种方式,我们计算得出属性 A 的信息增益为 0.311,显示它是一个对于降低结果预测不确定性有效的属性。下面开始技术总结

解题步骤总结

步骤 1: 理解数据和定义目标

  • 数据理解:首先,明确每个属性和结果类别的数据结构和分布。
  • 目标定义:明确你需要计算的是哪个属性的信息增益,以及最终目的是什么(例如,选择最好的属性进行数据分割)。

步骤 2: 计算整体数据集的熵

  • 计算概率:为数据集中每个结果类别计算概率。
  • 应用熵公式
    H ( X ) = − ∑ i = 1 n p i log ⁡ 2 ( p i ) H(X) = -\sum_{i=1}^{n} p_i \log_2(p_i) H(X)=i=1npilog2(pi)
    其中 p i p_i pi是第 i i i类结果的概率。

步骤 3: 计算条件熵

  • 分组数据:根据要计算信息增益的属性,将数据分成几组。
  • 计算每组的熵:对每个分组,再次计算结果的概率和熵。
  • 计算加权平均的条件熵
    H ( X ∣ A ) = ∑ j P ( A = a j ) H ( X ∣ A = a j ) H(X|A) = \sum_{j} P(A=a_j) H(X|A=a_j) H(XA)=jP(A=aj)H(XA=aj)
    其中 a j a_j aj 是属性 A A A 的第 j j j个值, P ( A = a j ) P(A=a_j) P(A=aj) 是该值在数据集中的概率。

步骤 4: 计算信息增益

  • 应用信息增益公式
    I G ( A ) = H ( X ) − H ( X ∣ A ) IG(A) = H(X) - H(X|A) IG(A)=H(X)H(XA)
    这里, I G ( A ) IG(A) IG(A) 是属性 A A A 的信息增益, H ( X ) H(X) H(X) 是数据集的熵, H ( X ∣ A ) H(X|A) H(XA) 是条件熵。

步骤 5: 解析和决策

  • 比较和选择:如果比较多个属性的信息增益,选择信息增益最高的属性,因为它最能减少不确定性,最适合用来分割数据。

相信有了这个总结之后,小朋友们就再也不用怕决策树算信息增益的问题啦

非常的有品

以上

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

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

相关文章

notepad++快捷键和宏录制

想要一个删除行的快捷键, 发现没有 有个现成的快捷键 CtrlL : 剪切当前行 , 不是我想要的效果 宏录制很方便,于是就录制一个删除行的宏,设置快捷键为: CtrlD 录制宏: 1, 点击"开始录制" 2, 依次按键: End , Space , Shift Home , Delete , Delete 3, 点击"停止…

Java集合进阶——数据结构

1.栈 模型: 栈模型和一个杯子差不多,一端开口,一端封闭,开口的那端叫栈顶,封闭的那端叫栈底,如图所示 介绍: 元素进入栈中叫进栈/压栈,元素出来叫出栈,元素进栈后会先来…

Appian发布最新版本:通过AI流程自动化推动业务发展

Appian公司于2024年4月16日在弗吉尼亚州麦克莱恩宣布推出Appian平台的最新版本。此版本引入了Process HQ,这是一个集流程挖掘和企业AI于一体的系统,结合了Appian的数据平台。Process HQ为企业运营提供前所未有的可见性,支持数据驱动的决策和流…

CERLAB无人机自主框架: 2-动态目标检测与跟踪

前言:更多更新文章详见我的个人博客主页【MGodmonkeyの世界】 描述:欢迎来到CERLAB无人机自主框架,这是一个用于自主无人飞行器 (UAV) 的多功能模块化框架。该框架包括不同的组件 (模拟器,感知,映射,规划和…

Hadoop——Yarn 调度器和调度算法

Yarn 调度器和调度算法 YARN调度器(Scheduler)是负责将集群资源分配给不同应用程序的组件。它根据应用程序的资源需求和优先级,以及集群的资源供给情况,决定如何分配资源。YARN提供了多种调度器实现,每种调度器都有不…

如何通过MSTSC连接Ubuntu的远程桌面?

正文共:666 字 12 图,预估阅读时间:1 分钟 前面我们介绍了如何通过VNC连接Ubuntu 18.04的远程桌面(Ubuntu 18.04开启远程桌面连接),非常简单。但是有小伙伴咨询如何使用微软的远程桌面连接MSTSC&#xff08…

Go栈内存管理源码解读

基本介绍 栈内存一般是由Go编译器自动分配和释放,其中存储着函数的入参和局部变量,这些参数和变量随着函数调用而创建,当调用结束后也会随之被回收。通常开发者不需要关注内存是分配在堆上还是栈上,这部分由编译器在编译阶段通过…

Android Studio学习笔记——广播机制Broadcast

Android Studio学习笔记——广播机制 5.1 广播机制简介5.2 接收系统广播5.2.1 动态注册监听网络变化5.2.2 静态注册实现开机启动 5.3 发送自定义广播5.3.1 发送标准广播5.3.2 发送有序广播 5.4 使用本地广播5.5 广播的最佳实践——强制下线功能 5.1 广播机制简介 安卓每个应用…

web server apache tomcat11-08-JNDI Resources

前言 整理这个官方翻译的系列,原因是网上大部分的 tomcat 版本比较旧,此版本为 v11 最新的版本。 开源项目 从零手写实现 tomcat minicat 别称【嗅虎】心有猛虎,轻嗅蔷薇。 系列文章 web server apache tomcat11-01-官方文档入门介绍 web…

spring boot后端开发基础

spring boot后端开发基础 Spring Boot一、开发步骤二、Web分析三、跨域问题四、HTTP协议五、Web服务器六、响应前端请求七、springboot常用注解创建一个简单的RESTful API服务层和数据访问层配置类和Bean定义响应体和路径变量 Spring Boot 一、开发步骤 创建项目 添加依赖 项…

k8s部署Eureka集群

部署有状态负载 镜像配置: 环境变量如下: AUTHENTICATE_ENABLEtrue JAVA_OPTS-Dauth.userName账号 -Dauth.password密码 MY_POD_NAMEmetadata.name BOOL_REGISTERtrue BOOL_FETCHtrue APPLICATION_NAME负载名称 EUREKA_INSTANCE_HOSTNAME${MY_POD_NA…

webpack源码分析——enhanced-resolve库之getType、normalize、join和cachedJoin函数

一、PathType 路径类型 const PathType Object.freeze({Empty: 0, // 空Normal: 1, // 默认值Relative: 2, // 相对路径AbsoluteWin: 3, // win 下的绝对路径AbsolutePosix: 4, // posix 下的绝对路径Internal: 5 // enhanced-resolve 内部自定义的一种类型,具体是…

小程序AI智能名片S2B2C商城系统:做内容、造IP、玩社群打造私域流量的新营销秘籍

在数字化浪潮汹涌的新时代,小程序AI智能名片S2B2C商城系统正以其独特的魅力,引领着营销领域的新变革。这套系统不仅将人工智能与小程序技术完美结合,更通过创新的S2B2C模式,为企业打开了一扇通往成功的大门。 面对激烈的市场竞争&…

SQL注入作业

目录 一、万能密码和二阶注入测试 1.万能密码 2.二阶注入测试 二、联合查询注入测试 1.判断注入点 2.判断当前查询语句的列数 3.查询数据库基本信息 4.查询数据库中的数据 三、报错注入 1. 报错注入函数EXTRATVALUE 2.UPDATEXML 四、盲注测试 1.布尔盲注 判断数据…

Linux搭建Discuz论坛

搭建一个论坛 —接上篇博客 改名/etc/httpd/conf.d/vhosts.conf 》/etc/httpd/conf.d/vhosts.conf.bak [rootlocalhost conf.d]# mv /etc/httpd/conf.d/vhosts.conf /etc/httpd/conf.d/vhosts.conf.bak此时的vhosts.conf是一个新创建的文件,之前的vhosts.conf已经…

使用 Godot 游戏引擎为 Apple 的 visionOS 创建游戏和应用的平台

借助GodotVision ,您可以使用Godot 游戏引擎为 Apple VisionOS创建游戏和应用程序。 保卫牛城堡,一款使用 GodotVision 制作的 VisionOS 游戏 GodotVision 运行一个控制本机RealityKit 视图的无头 Godot实例。粗略地说:Godot 是后端,

毅速3D打印随形透气钢:革新传统,引领未来

透气钢,这种多孔金属材料,既融合了金属材料的坚固性,又具备了透气材料的通透性。尤其在注塑模具的制造中,透气钢的作用不可忽视。通过镶嵌透气钢,能够有效解决因困气产生的注塑问题,使成型加工更为完善&…

【机器学习】机器学习学习笔记 - 监督学习 - 逻辑回归分类朴素贝叶斯分类支持向量机 SVM (可分类、可回归) - 04

逻辑回归分类 import numpy as np from sklearn import linear_modelX np.array([[4, 7], [3.5, 8], [3.1, 6.2], [0.5, 1], [1, 2], [1.2, 1.9], [6, 2], [5.7, 1.5], [5.4, 2.2]]) y np.array([0, 0, 0, 1, 1, 1, 2, 2, 2])# 逻辑回归分类器 # solver:求解器&a…

C字符串操作strlenstrnlen_s详解

前言 strcat、strcpy、strcmp、strlen是C中针对字符串的库函数,这四个函数不安全,然后C针对这个情况整出strcat_s、strcpy_s、strncmp、strnlen_s(这个并不是替代stelen的)来弥补。 这篇文章主要讲:strlen以及strnlen_s的用法。 详见C字符串…

SpringBoot项目整合Knife4j接口文档

文章目录 什么是接口文档?谁用接口文档为什么需要接口文档怎么做接口文档springboot如何整合knife4j?1.引入依赖2.在config目录下创建Knife4j配置依赖3.在appliacation.yml中进行配置4.启动Spring Boot工程,在浏览器中访问:http://localhost…