当前位置: 首页 > 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 的分类。

相关文章:

  • 【Y005】基于springboot+vue实现的社团管理系统
  • 毕业设计选题:基于springboot+vue+uniapp的在线办公小程序
  • LORA模型与基座大模型合并并由transformer的AutoModel推理
  • 大模型增量训练--基于transformer制作一个大模型聊天机器人
  • AndroidStudio导入so文件
  • ESP32和ESP8266下载方法及下载失败排查
  • Git忽略规则原理和.gitignore文件不生效的原因和解决办法
  • pytorch线性/非线性回归拟合
  • Leetcode 3302. Find the Lexicographically Smallest Valid Sequence
  • 数据库中的表添加uuid字段
  • spring 实用小技巧
  • 编程题 7-12 两个数的简单计算器【PAT】
  • Linux:磁盘管理
  • ps aux | grep smart_webrtc这条指令代表什么意思
  • SQLite3模块使用详解
  • [译] React v16.8: 含有Hooks的版本
  • CODING 缺陷管理功能正式开始公测
  • el-input获取焦点 input输入框为空时高亮 el-input值非法时
  • JavaScript工作原理(五):深入了解WebSockets,HTTP/2和SSE,以及如何选择
  • Sequelize 中文文档 v4 - Getting started - 入门
  • tweak 支持第三方库
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • VuePress 静态网站生成
  • 世界编程语言排行榜2008年06月(ActionScript 挺进20强)
  • 微信小程序填坑清单
  • 原生 js 实现移动端 Touch 滑动反弹
  • 中国人寿如何基于容器搭建金融PaaS云平台
  • ​二进制运算符:(与运算)、|(或运算)、~(取反运算)、^(异或运算)、位移运算符​
  • ​浅谈 Linux 中的 core dump 分析方法
  • ‌内网穿透技术‌总结
  • # Pytorch 中可以直接调用的Loss Functions总结:
  • ### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLTr
  • #DBA杂记1
  • #Linux(make工具和makefile文件以及makefile语法)
  • #pragma 指令
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • #知识分享#笔记#学习方法
  • (delphi11最新学习资料) Object Pascal 学习笔记---第14章泛型第2节(泛型类的类构造函数)
  • (第三期)书生大模型实战营——InternVL(冷笑话大师)部署微调实践
  • (二)丶RabbitMQ的六大核心
  • (三)Honghu Cloud云架构一定时调度平台
  • (实战)静默dbca安装创建数据库 --参数说明+举例
  • (四)Android布局类型(线性布局LinearLayout)
  • (一一四)第九章编程练习
  • (已解决)什么是vue导航守卫
  • (转)VC++中ondraw在什么时候调用的
  • (转)关于如何学好游戏3D引擎编程的一些经验
  • .ai域名是什么后缀?
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .Net CoreRabbitMQ消息存储可靠机制
  • .NET Core日志内容详解,详解不同日志级别的区别和有关日志记录的实用工具和第三方库详解与示例
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
  • .NET Remoting学习笔记(三)信道
  • .NET 除了用 Task 之外,如何自己写一个可以 await 的对象?
  • .NET单元测试使用AutoFixture按需填充的方法总结