信息熵、条件熵、信息增益率

2023-11-13

1.1 数学分布

分布可能指代不同的东西,比如数据分布或概率分布。这两种分布其实没有本质的区别,可以将x看做随机点,某一数据分布P为目标分布,概率分布f为x落在P上的概率值,形式化表示为f(x)。

假设我们是一组正在广袤无垠的太空中进行研究的科学家。我们发现了一些太空蠕虫,这些太空蠕虫的牙齿数量各不相同。现在我们需要将这些信息发回地球。但从太空向地球发送信息的成本很高,所以我们需要用尽量少的数据表达这些信息。我们有个好方法:我们不发送单个数值,而是绘制一张图表,其中 X 轴表示所观察到的不同牙齿数量(0,1,2…),Y 轴是看到的太空蠕虫具有 x 颗牙齿的概率(即具有 x 颗牙齿的蠕虫数量/蠕虫总数量)。这样,我们就将观察结果转换成了分布。

1.2 信息熵

熵是信息混乱程度的度量,信息越混乱越不确定熵越小。

我们对于信息发生概率的度量依赖于概率分布p(x),而我们想要寻找一个函数h(x),它是概率p(x)的单调函数,表达了信息内容的多少。信息量函数h()的形式可以这样寻找:如果我们有两个不相关的事件x和y,那么我们观察到两个事件同时发生时获得的信息应该等于观察到事件各自发生时获得的信息之和,即h(x, y)=h(x)+h(y)。两个不相关事件是统计独立的,因此p(x, y)=p(x)*p(y)。根据这两个关系,很容易看出h(x)一定与p(x) 的对数有关。因此,我们有:

h(x)=-logp(x)

其中负号使信息量取值为非负,一个事件发生的概率越大则信息量越小,而本来发生概率很小的事件发生了,那么信息量就很大,比如地震。该公式定义了概率分布和信息量函数成反比的关系。信息量是衡量事件发生时所带有的信息内容的多少。

信息熵是考虑该随机变量的所有可能取值,即所有可能发生事件所带来的信息量的期望。

现在假设一个发送者想传输一个随机变量的值给接收者。这个过程中,他们传输的平均信息量通可以通过计算概率分布p(x) 的期望得到。这个期望值为:

H(x)=\sum{p(x)h(x)}=-\sum{p(x)logp(x)}

事实上H(x)就是随机变量x的熵,熵计算公式:

E = -\sum_{i}{P(x_i)logP(x_i)}

信息熵是随机变量所有取值的信息量的期望,即当获取了一个事件的概率分布后,它的信息熵就是确定的,反映了它的平均信息量大小,信息熵越大,平均信息量越大,概率分布越平均(反之,某些取值的概率越大或越小),信息混乱程度越低。

y1 = tf.constant([0.25, 0.25, 0.25, 0.25])
y2 = tf.constant([0.1, 0.1, 0.1, 0.7])
y3 = tf.constant([0.01, 0.01, 0.01, 0.97])

loss1 = -tf.reduce_sum(y1*tf.math.log(y1))  # 1.3862944
loss2 = -tf.reduce_sum(y2*tf.math.log(y2))  # 0.94044805
loss3 = -tf.reduce_sum(y3 * tf.math.log(y3))  # 0.1677005

1.3 条件熵

条件熵H(Y∣X)定义为X给定条件下Y的条件概率的熵对X的数学期望:

H(Y|X)=\sum_{x}p(x)H((Y|X=x))\\=-\sum_{x}p(x)\sum_yp(y|x)logp(y|x)\\=-\sum_{x, y}p(x, y)logp(y|x)

条件概率P(y|x)为已知x的情况下y的概率,p(y|x)=p(x, y)-p(x)。

某个事件的条件熵指在另一事件发生的情况下,该事件的熵的期望,例题讲解:

女孩嫁还是不嫁永远是问题中的问题,老感兴趣了,今天就分析一下,那个因素影响巨大。女生嫁不嫁是事件Y,男生帅不帅是事件X,我们想知道的是,帅不帅对女生的决定影响有多大,调查问卷结果见下图,我们可以用条件熵来计算一下,一切用数据说话!

可以看到在调查对象中帅的小伙子有8个,不帅的才4个,在帅哥中,选择嫁的女生有3个,不嫁的有5个,同理,在丑男里,愿意嫁的居然有3个,不愿意的就1个。所以:

H(Y|x=帅)=-{3\over 8}log{3\over 8}-{5\over 8}log{5\over 8}=0.287313

H(Y|x=不帅)=-{3\over 4}log{3\over 4}-{1\over 4}log{1\over 4}=0.244219

故在帅不帅的情况下,嫁不嫁的条件熵为:

H(Y|x)=0.287313*{8\over 12}+0.244219*{4\over 12}=0.272948

观察只有嫁不嫁的信息熵为:

H(Y)=-{1\over 2}log{1\over 2}-{1\over 2}log{1\over 2}=0.301030

我们用另一个变量对原变量分类后,原变量的熵减小了,信息量减小了,不确定性就会减小了,因为新增了X的信息。可以感受一下,不确定程度减少了多少就是信息的增益。这里可能会有点疑惑,信息量减小了,怎么还叫信息增益呢?其实按常识来说,我们是希望信息越多越好,但信息越多也就意味着选择空间大,不确定性越大,生活嘛,还是稳定最好,至于增益还是衰减,别纠结了,这看人。

1.4 信息增益率

上述的嫁不嫁问题其实还没解决,回顾一下问题:我们想知道的是,帅不帅对女生的决定影响有多大?信息熵回答了我们女生做决定的神奇思路(H越大表示脑回路清奇,可能自己都不知道自己要啥,H越小表示直女癌),而条件熵回答了在帅不帅以经定的情况下,做决定的神奇思路,但还是不知道帅不帅的影响有多大。感觉答案已经呼之欲出了,别急,就是信息增益率。

信息增益指得知特征X的信息而使得类Y的信息不确定性减少的程度。这不就是我们想要的答案吗?计算公式给出:

g(X)=H(Y)-H(Y|X)

g(X)为特征X对分类Y的信息增益。

所以男生帅不帅对女生嫁不嫁的信息增益为:

g(X=长相)=0.301030-0.272948=0.028082

不过,好像只是一个数字也看不出啥,没事还有信息增益率:

G(X)={g(X)\over H(X)}={0.028082\over -{4\over 12}log{4\over 12}-{8\over 12}log{8\over 12}}=0.101391

同理我们计算一下其他因素的信息增益和信息增益率

g(X=性格)=0.301030-0.231921=0.069109 \\G(X)={0.069109\over -{6\over 12}log{6\over 12}-{4\over 12}log{4\over 12}-{2\over 12}log{2\over 12}}=0.157335

g(X=身高)=0.301030-0.103898=0.198132 \\G(X)={0.069109\over -{3\over 12}log{3\over 12}-{2\over 12}log{2\over 12}-{7\over 12}log{7\over 12}}=0.475416

g(X=上进否)=0.301030-0.272948=0.028082 \\G(X)={g(X)\over H(X)}={0.028082\over -{4\over 12}log{4\over 12}-{8\over 12}log{8\over 12}}=0.101391

如此看来,还是个子高点好啊!但注意,信息增益率之和不是1,因为信息增益是特征对分类的不确定性贡献,而信息增益率的分母是特征本身的不确定性程度,按正常认知来说信息增益率之和也不该是1。所以另一个问题是,信息增益率是1,还是大于1,可能是负数?

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

信息熵、条件熵、信息增益率 的相关文章

  • 什么是概率匹配

    概率匹配是一种在信息论和统计学中常用的方法 用于将一个随机事件的概率分布与另一个概率分布进行匹配或逼近 它在数据处理 编码 压缩和模型选择等领域具有重要的应用 为我们理解和处理复杂的概率分布提供了一种有效的工具 首先 让我们来了解概率匹配的
  • 10个 Python 脚本来自动化你的日常任务

    在这个自动化时代 我们有很多重复无聊的工作要做 想想这些你不再需要一次又一次地做的无聊的事情 让它自动化 让你的生活更轻松 那么在本文中 我将向您介绍 10 个 Python 自动化脚本 以使你的工作更加自动化 生活更加轻松 因此 没有更多
  • 推荐系统:机器学习中基于内容的过滤

    概述 顾名思义 基于内容的筛选是一种机器学习实现 它使用系统中收集的内容或功能来提供类似的建议 根据用户观察结果从数据集中获取最相关的信息 最常见的例子是 Netflix Myntra Hulu Hotstar Instagram Expl
  • 杂项:机器学习平台

    概述 机器学习学科正在快速扩展 因此 选择合适的机器学习平台至关重要 这有助于利用端到端方法成功构建模型 机器学习平台为用户提供了创建 实施和增强机器学习 尤其是机器学习算法 的工具 介绍 随着组织收集更多数据 使用机器学习和其他人工智能
  • 人工智能深度学习:探索智能的深邃奥秘

    导言 人工智能深度学习作为当今科技领域的明星 正引领着智能时代的浪潮 深度学习和机器学习作为人工智能领域的两大支柱 它们之间的关系既有协同合作 又存在着显著的区别 本文将深入研究深度学习在人工智能领域的角色 以及其在各行各业中的深远影响 研
  • 人工智能边缘计算:连接智能的边界

    导言 人工智能边缘计算是将智能计算推向数据源头的重要发展方向 本文将深入探讨边缘计算与人工智能的交融 以及在未来数字化社会中的前景 1 边缘计算的基础 分布式计算 边缘计算通过将计算任务推送至数据产生的地方 实现更高效的分布式计算 低延迟通
  • .h5文件简介

    一 简介 HDF5 Hierarchical Data Format version 5 是一种用于存储和组织大量数据的文件格式 它支持高效地存储和处理大规模科学数据的能力 HDF5 是一种灵活的数据模型 可以存储多种数据类型 包括数值数据
  • 天猫双十实战

    import numpy as np import matplotlib pyplot as plt from sklearn linear model import SGDRegressor from sklearn preprocess
  • 机器学习之迁移学习(Transfer Learning)

    概念 迁移学习 Transfer Learning 是一种机器学习方法 其核心思想是将从一个任务中学到的知识应用到另一个相关任务中 传统的机器学习模型通常是从头开始训练 使用特定于任务的数据集 而迁移学习则通过利用已经在一个任务上学到的知识
  • 基于生成式对抗网络的视频生成技术

    随着人工智能的快速发展 生成式对抗网络 GAN 作为一种强大的生成模型 已经在多个领域展现出了惊人的能力 其中 基于GAN的视频生成技术更是引起了广泛的关注 本文将介绍基于生成式对抗网络的视频生成技术的原理和应用 探索其对电影 游戏等领域带
  • 详解数据科学自动化与机器学习自动化

    过去十年里 人工智能 AI 构建自动化发展迅速并取得了多项成就 在关于AI未来的讨论中 您可能会经常听到人们交替使用数据科学自动化与机器学习自动化这两个术语 事实上 这些术语有着不同的定义 如今的自动化机器学习 即 AutoML 特指模型构
  • MIT_线性代数笔记:第 23 讲 微分方程和 exp(At)

    目录 微分方程 Differential equations 矩阵指数函数 Matrix exponential e A t e At
  • MIT_线性代数笔记:第 23 讲 微分方程和 exp(At)

    目录 微分方程 Differential equations 矩阵指数函数 Matrix exponential e A t e At
  • 蒙牛×每日互动合作获评中国信通院2023“数据+”行业应用优秀案例

    当前在数字营销领域 品牌广告主越来越追求品效协同 针对品牌主更注重营销转化的切实需求 数据智能上市企业每日互动 股票代码 300766 发挥自身数据和技术能力优势 为垂直行业的品牌客户提供专业的数字化营销解决方案 颇受行业认可 就在不久前举
  • 山西电力市场日前价格预测【2024-01-09】

    日前价格预测 预测说明 如上图所示 预测明日 2024 01 09 山西电力市场全天平均日前电价为314 92元 MWh 其中 最高日前电价为593 66元 MWh 预计出现在18 15 最低日前电价为54 95元 MWh 预计出现在13
  • 【需求响应】改进连续时间控制方法用于分散式需求响应的恒温负荷研究(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Python代码及文章
  • 【需求响应】改进连续时间控制方法用于分散式需求响应的恒温负荷研究(Python代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Python代码及文章
  • 毕业设计-基于深度学习的细菌微生物目标检测系统系统 YOLO python 目标检测 人工智能 卷积神经网络 机器学习

    目录 前言 设计思路 一 课题背景与意义 二 算法理论原理 2 1 CBAM模块 2 2 损失函数 三 检测的实现 3 1 数据集 3 2 实验环境搭建 3 3 实验及结果分析 实现效果图样例 最后 前言 大四是整个大学期间最忙碌的时光 一
  • 【毕业设计选题】复杂背景下的无人机(UVA)夜间目标检测系统 python 人工智能 深度学习

    前言 大四是整个大学期间最忙碌的时光 一边要忙着备考或实习为毕业后面临的就业升学做准备 一边要为毕业设计耗费大量精力 近几年各个学校要求的毕设项目越来越难 有不少课题是研究生级别难度的 对本科同学来说是充满挑战 为帮助大家顺利通过和节省时间
  • 机器学习算法实战案例:时间序列数据最全的预处理方法总结

    文章目录 1 缺失值处理 1 1 统计缺失值 1 2 删除缺失值 1 3 指定值填充 1 4 均值 中位数 众数填充

随机推荐

  • python14异常处理

    1 错误 有的错误是程序编写有问题造成的 比如本来应该输出整数结果输出了字符 串 这种错误我们通常称之为 bug bug 是必须修复的 有的错误是用户输入造成的 比如让用户输入 email 地址 结果得到一个空字 符串 这种错误可以通过检查
  • 克鲁斯卡尔算法(kruskal)

    我自己感觉 克鲁斯卡尔算法比普利姆算法更好理解 它就两个要点 排序和判断是否成环 排序 我们把两两相邻的边根据边的权值 从小到大依次排序 这个十大排序算法可以自己选一个去实现下 刚好还可以回忆下以前的算法 下面我们使用冒泡来实现边的排序 是
  • CentOS8搭建Web服务器笔记1 Nginx+Php8基础环境

    CentOS8搭建Web服务器笔记1 Nginx Php8基础环境 1 Nginx 1 1 Yum工具安装 1 1 1 查询Yum默认安装源版本 1 1 2 配置最新安装源 1 1 3 yum安装nginx 1 1 4 启动nginx服务
  • 4.4 Go语言中的单元测试

    基本概念 上一节提到 代码完成的标准之一还包含了单元测试 这部分也是很多开发流程中不规范的地方 写过单元测试的开发人员应该理解 单元测试最核心的价值是为了证明 为什么我写的代码是正确的 也就是从逻辑角度帮你检查你的代码 但是另外一方面 如果
  • 谈谈古典的《拆掉思维里的墙》

    写在前面 这是考完高考 拿到深圳大学录取通知书之后 年级发布的第一个作业 就是看一篇年级推荐的书写一篇读后感 不过写完回校之后年级居然把这事给忘记了 写了文章没人看不是很好 于是就放上C站呆着 留点痕迹 也许算正文 距离上一次写读后感已经不
  • 决策树(Decision Tree)

    文章目录 1 决策树简介 2 决策树原理 2 1 引例 2 2 生成算法 2 2 1 ID3 信息增益 2 2 2 C4 5 信息增益率 2 2 3 CART 基尼指数 2 3 三种算法的对比 2 4 剪枝处理 2 4 1 预剪枝 2 4
  • 怎么让VSCode标签栏只展示一个窗口

    怎么让VSCode标签栏只展示一个窗口 问题 解决方法 参考 问题 我们希望VSCode窗口的标签栏是这么分开显示标签的 但是 偶尔重启该应用 会突然发现变成了只显示一个标签 不会再分开展示了 变成了一个文件名加路径了 这种情况下原来的标签
  • Oracle 表空间、段、区、块概述

    文章目录 图示 表空间 tablespace 数据段 segment 区 extent 数据块 block 图示 修改中 请稍等 段 存在于 表空间 中 段 是 区 的集合 区 是 数据块 的集合 数据块 会映射到 磁盘块 以实体 关系图的
  • Request_获取请求参数通用方式介绍

    1 获取请求参数通用方式 不论get还是post请求方式都可以使用下列方法来获取请求参数 1 String getParameter String name 根据参数名称获取参数值 username zs password 123 2 St
  • 除了Midjourney和Stable Diffusion,还有哪些AI模型可以使用

    Midjourney是一款广受设计师和艺术家欢迎的人工智能图像生成器 然而 最近它停止提供免费试用 让许多用户开始寻找替代品 在本文中 我们为您编制了一个2023年可尝试的十大Midjourney替代品列表 我们包括了免费和付费选项 让您可
  • [台服公主链接]修改ROOT检测

    类路径 Project smali jp co cygames androidroot CheckApp smali 原始代码 method public static isRootUser Z locals 7 prologue cons
  • CSS Flex相关属性(自我总结)

    把容器做成flex弹性盒 display flex 容器属性 1 flex direction 项目排列方向 主轴方向 row 左对齐 横向排列 默认 row reverse 右对齐 反转横向排列 column 纵向排列 column re
  • JAVA 计算日期属于当月第几周(日期周计算)

    JAVA 计算日期属于当月第几周 日期周计算 本文周计算时间方式为 当月第一个周一为第一周 计算 获取月第一个周一 从当月第一天开始找 第一个周一时间与 sourceTime 传入时间对比 sourceTime在第一个周一时间之前 表示属于
  • Twitter开发者账号及开发者APPs的创建 2019.05

    转自 https towardsdatascience com access data from twitter api using r and or python b8ac342d3efe Access Data from Twitter
  • screen / nohup 实现后台运行程序

    通常我们在运行程序时 会通过终端登录服务器 然后使用shell命令运行程序 这种方式对于运行时长较短的程序没问题 但是对于深度学习中训练网络等耗时较长的程序来说很容易出问题 例如一旦机器死机 断网 不小心关闭终端等种种情况都会导致程序终止运
  • JSP中include指令的功能简介说明

    转自 JSP中include指令起什么用呢 下文讲述JSP中include指令的功能简介说明 如下所示 JSP中include指令的功能说明 用于将不同的文件插入到当前JSP页面的指定位置 JSP指令的语法 相关说明 include指令 用
  • 现代大学英语精读第二版(第四册)学习笔记(原文及全文翻译)——1A - Thinking as a Hobby(把思考作为爱好)

    Unit 1A Thinking as a Hobby Thinking as a Hobby William Golding While I was still a boy I came to the conclusion that th
  • @RefreshScope详解

    要说清楚RefreshScope 先要了解Scope Scope org springframework beans factory config Scope 是Spring 2 0开始就有的核心的概念 RefreshScope org s
  • React 性能优化

    React 的工作流程是什么 我们可以在哪些阶段进行性能优化呢 如果 React 项目中出现了卡顿 我们可以采用哪些性能优化技巧 如何通过 React Profiler 定位性能问题 React Profiler 包含哪些阶段的信息 大纲
  • 信息熵、条件熵、信息增益率

    1 1 数学分布 分布可能指代不同的东西 比如数据分布或概率分布 这两种分布其实没有本质的区别 可以将x看做随机点 某一数据分布P为目标分布 概率分布f为x落在P上的概率值 形式化表示为f x 假设我们是一组正在广袤无垠的太空中进行研究的科