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

条件熵公式详细解释、举例说明计算步骤

公式 7-4 是条件熵的表达式:
E ( Y ∣ X ) = ∑ i = 1 m p ( X = x i ) E ( Y ∣ X = x i ) E(Y|X) = \sum_{i=1}^m p(X = x_i) E(Y | X = x_i) E(YX)=i=1mp(X=xi)E(YX=xi)

这个公式表示的是条件熵,它是衡量在已知某一特征 X X X 的情况下,随机变量 Y Y Y 的不确定性(熵)。条件熵 E ( Y ∣ X ) E(Y|X) E(YX) 的含义是:在已知 X X X 的值的情况下, Y Y Y 的不确定性有多大。它通过对所有可能的 X X X 的取值的熵进行加权平均来计算。

公式的详细解释:

  1. E ( Y ∣ X ) E(Y|X) E(YX):这是条件熵,表示在给定 X X X 的条件下, Y Y Y 的不确定性。它衡量了已知 X X X 的值后, Y Y Y 仍然有多少不确定性。如果 X X X Y Y Y 的影响很大,那么条件熵会很低;如果 X X X 无法有效区分 Y Y Y 的类别,那么条件熵会较高。

  2. ∑ i = 1 m \sum_{i=1}^m i=1m:这个符号表示对 X X X 的所有可能取值进行求和。即我们对 X X X 的每一个取值 x i x_i xi 都要计算相应的条件熵并加权平均。 m m m 是随机变量 X X X 的可能取值数量。

  3. p ( X = x i ) p(X = x_i) p(X=xi):这是边缘概率,表示 X X X 取某个值 x i x_i xi 的概率。它表示了在数据集中 X X X 取值为 x i x_i xi 的样本所占比例。

  4. E ( Y ∣ X = x i ) E(Y|X = x_i) E(YX=xi):这是在 X X X 已知为 x i x_i xi 的条件下, Y Y Y 的熵,即条件熵。它衡量了在 X = x i X = x_i X=xi 的条件下, Y Y Y 的不确定性。通常,条件熵使用公式 E ( Y ∣ X = x i ) = − ∑ j = 1 n p ( Y = y j ∣ X = x i ) log ⁡ p ( Y = y j ∣ X = x i ) E(Y|X = x_i) = - \sum_{j=1}^n p(Y = y_j | X = x_i) \log p(Y = y_j | X = x_i) E(YX=xi)=j=1np(Y=yjX=xi)logp(Y=yjX=xi) 来计算,其中 p ( Y = y j ∣ X = x i ) p(Y = y_j | X = x_i) p(Y=yjX=xi) 是条件概率,表示在 X = x i X = x_i X=xi Y Y Y y j y_j yj 的概率。

直观理解条件熵:

  • 条件熵 E ( Y ∣ X ) E(Y|X) E(YX) 表示在已知 X X X 的情况下, Y Y Y 还有多少不确定性。如果 X X X 能完全决定 Y Y Y 的取值,那么条件熵 E ( Y ∣ X ) E(Y|X) E(YX) 为 0,表示没有不确定性(即 X X X Y Y Y 完全相关)。如果 X X X Y Y Y 完全无关,则条件熵 E ( Y ∣ X ) E(Y|X) E(YX) 等于 Y Y Y 的熵 E ( Y ) E(Y) E(Y),即条件熵没有帮助减少不确定性。

  • 条件熵是信息增益的基础:当我们使用某个特征 X X X 来划分数据时,条件熵表示在这个划分下,目标变量 Y Y Y 的不确定性。如果某个划分显著减少了不确定性(即条件熵小),说明这个特征 X X X 是一个很好的分类依据。

举例说明:

假设我们有一个简单的二元分类问题, Y Y Y 表示分类标签, X X X 表示一个特征。我们有以下数据集:

  • 数据集包含 10 个样本,其中 6 个是类别 1,4 个是类别 2。
  • 特征 X X X 可以取 2 个值: x 1 x_1 x1 x 2 x_2 x2
    • X = x 1 X = x_1 X=x1 时,有 4 个样本,其中 3 个是类别 1,1 个是类别 2。
    • X = x 2 X = x_2 X=x2 时,有 6 个样本,其中 3 个是类别 1,3 个是类别 2。
1. 计算边缘概率:
  • p ( X = x 1 ) = 4 10 = 0.4 p(X = x_1) = \frac{4}{10} = 0.4 p(X=x1)=104=0.4
  • p ( X = x 2 ) = 6 10 = 0.6 p(X = x_2) = \frac{6}{10} = 0.6 p(X=x2)=106=0.6
2. 计算条件熵 E ( Y ∣ X = x 1 ) E(Y|X = x_1) E(YX=x1) E ( Y ∣ X = x 2 ) E(Y|X = x_2) E(YX=x2)

条件熵的计算公式为:
E ( Y ∣ X = x i ) = − ∑ j = 1 n p ( Y = y j ∣ X = x i ) log ⁡ p ( Y = y j ∣ X = x i ) E(Y|X = x_i) = - \sum_{j=1}^n p(Y = y_j | X = x_i) \log p(Y = y_j | X = x_i) E(YX=xi)=j=1np(Y=yjX=xi)logp(Y=yjX=xi)

  • X = x 1 X = x_1 X=x1 时:

    • 类别 1 的条件概率: p ( Y = 1 ∣ X = x 1 ) = 3 4 = 0.75 p(Y = 1 | X = x_1) = \frac{3}{4} = 0.75 p(Y=1∣X=x1)=43=0.75
    • 类别 2 的条件概率: p ( Y = 2 ∣ X = x 1 ) = 1 4 = 0.25 p(Y = 2 | X = x_1) = \frac{1}{4} = 0.25 p(Y=2∣X=x1)=41=0.25

    条件熵为:
    E ( Y ∣ X = x 1 ) = − ( 0.75 log ⁡ 2 0.75 + 0.25 log ⁡ 2 0.25 ) E(Y|X = x_1) = - (0.75 \log_2 0.75 + 0.25 \log_2 0.25) E(YX=x1)=(0.75log20.75+0.25log20.25)

    我们计算各项的对数值:
    log ⁡ 2 0.75 ≈ − 0.415 , log ⁡ 2 0.25 = − 2 \log_2 0.75 \approx -0.415, \quad \log_2 0.25 = -2 log20.750.415,log20.25=2

    代入公式:
    E ( Y ∣ X = x 1 ) = − ( 0.75 × − 0.415 + 0.25 × − 2 ) = 0.31125 + 0.5 = 0.81125 E(Y|X = x_1) = - (0.75 \times -0.415 + 0.25 \times -2) = 0.31125 + 0.5 = 0.81125 E(YX=x1)=(0.75×0.415+0.25×2)=0.31125+0.5=0.81125

  • X = x 2 X = x_2 X=x2 时:

    • 类别 1 的条件概率: p ( Y = 1 ∣ X = x 2 ) = 3 6 = 0.5 p(Y = 1 | X = x_2) = \frac{3}{6} = 0.5 p(Y=1∣X=x2)=63=0.5
    • 类别 2 的条件概率: p ( Y = 2 ∣ X = x 2 ) = 3 6 = 0.5 p(Y = 2 | X = x_2) = \frac{3}{6} = 0.5 p(Y=2∣X=x2)=63=0.5

    条件熵为:
    E ( Y ∣ X = x 2 ) = − ( 0.5 log ⁡ 2 0.5 + 0.5 log ⁡ 2 0.5 ) E(Y|X = x_2) = - (0.5 \log_2 0.5 + 0.5 \log_2 0.5) E(YX=x2)=(0.5log20.5+0.5log20.5)

    因为 log ⁡ 2 0.5 = − 1 \log_2 0.5 = -1 log20.5=1,所以:
    E ( Y ∣ X = x 2 ) = − ( 0.5 × − 1 + 0.5 × − 1 ) = 1 E(Y|X = x_2) = - (0.5 \times -1 + 0.5 \times -1) = 1 E(YX=x2)=(0.5×1+0.5×1)=1

3. 计算条件熵 E ( Y ∣ X ) E(Y|X) E(YX)

现在我们将两个条件熵按边缘概率加权求和:
E ( Y ∣ X ) = p ( X = x 1 ) E ( Y ∣ X = x 1 ) + p ( X = x 2 ) E ( Y ∣ X = x 2 ) E(Y|X) = p(X = x_1) E(Y|X = x_1) + p(X = x_2) E(Y|X = x_2) E(YX)=p(X=x1)E(YX=x1)+p(X=x2)E(YX=x2)

代入已知数值:
E ( Y ∣ X ) = 0.4 × 0.81125 + 0.6 × 1 = 0.3245 + 0.6 = 0.9245 E(Y|X) = 0.4 \times 0.81125 + 0.6 \times 1 = 0.3245 + 0.6 = 0.9245 E(YX)=0.4×0.81125+0.6×1=0.3245+0.6=0.9245

结论:

  • 条件熵 E ( Y ∣ X ) = 0.9245 E(Y|X) = 0.9245 E(YX)=0.9245 表示,在已知特征 X X X 的情况下,目标变量 Y Y Y 仍然具有约 0.9245 的不确定性。
  • 条件熵帮助我们理解特征 X X X 对目标变量 Y Y Y 的解释能力。如果某个特征的条件熵很低,说明这个特征可以很好地帮助分类决策。如果条件熵很高,则说明该特征对目标变量的区分能力有限。

总结:

  • 公式 7-4 计算了条件熵,它衡量了在已知特征 X X X 的情况下,目标变量 Y Y Y 的不确定性。
  • 条件熵是决策树中进行特征选择的重要指标,通过最小化条件熵,我们可以选择出能够最好地分类数据的特征。
  • 条件熵越小,表示特征 X X X 能很好地解释目标变量 Y Y Y 的分类。

相关文章:

条件熵公式详细解释、举例说明计算步骤

公式 7-4 是条件熵的表达式: E ( Y ∣ X ) ∑ i 1 m p ( X x i ) E ( Y ∣ X x i ) E(Y|X) \sum_{i1}^m p(X x_i) E(Y | X x_i) E(Y∣X)i1∑m​p(Xxi​)E(Y∣Xxi​) 这个公式表示的是条件熵,它是衡量在已知某一特征 X X X 的情况下&#xff0c…...

颍川陈氏始祖陈寔逆势崛起的原由(一)不屈的努力

园子说颍川 按陈寔的出身,与当官是风马牛不相及的。 东汉末年的社会,朝中外戚、宦官当道,地方则由世家大族把持,郡县的政治经济资源都由他们掌控分配,平民以及中小地主很难有出头之日,弄不好就被兼并了。…...

golang小项目1-家庭收支记账系统

项目地址:golang小项目 参考资料:尚硅谷golang教程P229 家庭收支记账系统 1. 系统简介 1.1 项目背景 在现代社会中,家庭的财务管理显得尤为重要。随着生活成本的不断上升,家庭需要有效地记录和分析收支情况,以确保…...

Visual Studio Code下载安装及汉化

官网:https://code.visualstudio.com/ 按照指示一步步操作即可: 汉化:...

MySQL—触发器详解

基本介绍 触发器是与表有关的数据库对象,在 INSERT、UPDATE、DELETE 操作之前或之后触发并执行触发器中定义的 SQL 语句。 触发器的这种特性可以协助应用在数据库端确保数据的完整性、日志记录、数据校验等操作。 使用别名 NEW 和 OLD 来引用触发器中发生变化的记…...

钉钉H5微应用Springboot+Vue开发分享

文章目录 说明技术路线注意操作步骤思路图 一、创建钉钉应用二、创建java项目三、创建vue项目(或uniapp项目),npm引入sdk的依赖四、拥有公网域名端口。开发环境可以使用(贝锐花生壳等工具)五、打开钉钉开发者平台&…...

项目:微服务即时通讯系统客户端(基于C++QT)]四,中间界面搭建和逻辑准备

四,中间界面搭建 前言:当项目越来越复杂的时候,或许画草图是非常好的选择 一,初始化中间窗口initMidWindow void mainWidget::initMidWindow() {//使用网格布局进行管理QGridLayout* layout new QGridLayout();//距离上方 20px 的距离&…...

【C语言】指针详解(一)

个人主页 : zxctscl 如有转载请先通知 文章目录 1.内存与地址2.指针变量与地址2.1 取地址操作符&2.2 指针变量2.3 指针类型2.4 解引用操作符2.5 指针变量的大小 3. 指针变量类型的意义3.1 指针的解引用 4. const修饰指针4.1 const修饰变量4.2 const修饰指针变量…...

unity3D雨雪等粒子特效不穿透房屋效果实现(粒子不穿透模型)

做项目有时候会做天气模拟,模拟雨雪天气等等。但是容易忽略一个问题,就是房屋内不应该下雨或者下雪,这样不就穿帮了嘛。 下面就粒子穿透物体问题做一个demo。 正常下雨下雪在室内的话,你可以看到,粒子是穿透建筑的。 那要怎么模拟真实的雨雪天气,不让粒子穿透房屋建筑呢…...

ROS2安装cartographer

2. 安装Cartographer和Cartographer ROS 使用apt安装(推荐): bash sudo apt install ros-humble-cartographer-ros或者,从源代码安装: bash sudo apt-get update sudo apt-get install -y python3-wstool python3…...

kafka测试

1】确认 ZooKeeper 服务状态 为了进一步确认 ZooKeeper 服务的状态,你可以执行以下操作: 检查 ZooKeeper 服务状态: docker ps 确保 ZooKeeper 容器正在运行。 检查 ZooKeeper 日志: docker logs zookeeper 查看最新的日志条目&…...

总结C/C++中内存区域划分

目录 1.C/C程序内存分配主要的几个区域: 2.内存分布图 1.C/C程序内存分配主要的几个区域: 1、栈区 2、堆区 3、数据段(静态区) 4.代码段 2.内存分布图 如图: static修饰静态变量成员——放在静态区 int globalVar 是…...

第168天:应急响应-ELK 日志分析系统Yara规则样本识别特征提取规则编写

目录 案例一:ELK 搭建使用-导入文件&监控日志&语法筛选 案例二:Yara 规则使用-规则检测&分析特征&自写规则 案例一:ELK 搭建使用-导入文件&监控日志&语法筛选 该软件是专业分析日志的工具,但是不支持安…...

MySQL 面试题及答案

MySQL 面试题及答案: 一、基础问题 什么是数据库索引?有哪些类型? 答:数据库索引是一种数据结构,用于提高数据库查询的效率。它就像一本书的目录,可以快速定位到特定的数据行。 类型主要有: …...

vue仿chatGpt的AI聊天功能--大模型通义千问(阿里云)

vue仿chatGpt的AI聊天功能–大模型通义千问(阿里云) 通义千问是由阿里云自主研发的大语言模型,用于理解和分析用户输入的自然语言。 1. 创建API-KEY并配置环境变量 打开通义千问网站进行登录,登陆之后创建api-key,右…...

养老院管理系统(含源码+sql+视频导入教程+文档)

👉文末查看项目功能视频演示获取源码sql脚本视频导入教程视频 1 、功能描述 养老院管理系统拥有两种角色:管理员和护工 管理员:用户管理、老人信息管理、事故记录管理、入住费用管理、护工薪资管理、护工请假管理、床位管理、请假管理等 护…...

大数据的挑战是小文件

小文件可能会给存储平台及其支持的应用程序带来大问题。在 Google 上搜索 “small files performance” 会产生 2M 的结果。这篇博文将更深入地研究小文件问题,深入研究其根源并总结解决方案。 问题陈述 出于本讨论的目的,小文件通常被视为小于 64 KB …...

迁移学习案例-python代码

大白话 迁移学习就是用不太相同但又有一些联系的A和B数据,训练同一个网络。比如,先用A数据训练一下网络,然后再用B数据训练一下网络,那么就说最后的模型是从A迁移到B的。 迁移学习的具体形式是多种多样的,比如先用A训练…...

MCUboot 和 U-Boot区别

MCUboot 和 U-Boot 都是用于嵌入式系统的引导加载程序,但它们在一些方面存在区别: 功能特性 安全特性侧重不同 MCUboot :更专注于安全引导方面,强调安全启动、固件完整性验证和加密等安全功能。它提供了强大的安全机制来防止恶意…...

Apache OFBiz SSRF漏洞CVE-2024-45507分析

Apache OFBiz介绍 Apache OFBiz 是一个功能丰富的开源电子商务平台,包含完整的商业解决方案,适用于多种行业。它提供了一套全面的服务,包括客户关系管理(CRM)、企业资源规划(ERP)、订单管理、产…...

MongoDB学习和应用(高效的非关系型数据库)

一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署,直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型,但是目前国内可能使用不多,至少实践例子很少看见。开发训练模型就不介绍了&am…...

【Go语言基础【13】】函数、闭包、方法

文章目录 零、概述一、函数基础1、函数基础概念2、参数传递机制3、返回值特性3.1. 多返回值3.2. 命名返回值3.3. 错误处理 二、函数类型与高阶函数1. 函数类型定义2. 高阶函数(函数作为参数、返回值) 三、匿名函数与闭包1. 匿名函数(Lambda函…...

2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)

安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...

GitHub 趋势日报 (2025年06月06日)

📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 590 cognee 551 onlook 399 project-based-learning 348 build-your-own-x 320 ne…...

4. TypeScript 类型推断与类型组合

一、类型推断 (一) 什么是类型推断 TypeScript 的类型推断会根据变量、函数返回值、对象和数组的赋值和使用方式,自动确定它们的类型。 这一特性减少了显式类型注解的需要,在保持类型安全的同时简化了代码。通过分析上下文和初始值,TypeSc…...

wpf在image控件上快速显示内存图像

wpf在image控件上快速显示内存图像https://www.cnblogs.com/haodafeng/p/10431387.html 如果你在寻找能够快速在image控件刷新大图像(比如分辨率3000*3000的图像)的办法,尤其是想把内存中的裸数据(只有图像的数据,不包…...

消防一体化安全管控平台:构建消防“一张图”和APP统一管理

在城市的某个角落,一场突如其来的火灾打破了平静。熊熊烈火迅速蔓延,滚滚浓烟弥漫开来,周围群众的生命财产安全受到严重威胁。就在这千钧一发之际,消防救援队伍迅速行动,而豪越科技消防一体化安全管控平台构建的消防“…...

es6+和css3新增的特性有哪些

一:ECMAScript 新特性(ES6) ES6 (2015) - 革命性更新 1,记住的方法,从一个方法里面用到了哪些技术 1,let /const块级作用域声明2,**默认参数**:函数参数可以设置默认值。3&#x…...

若依登录用户名和密码加密

/*** 获取公钥:前端用来密码加密* return*/GetMapping("/getPublicKey")public RSAUtil.RSAKeyPair getPublicKey() {return RSAUtil.rsaKeyPair();}新建RSAUti.Java package com.ruoyi.common.utils;import org.apache.commons.codec.binary.Base64; im…...