【机器学习】信息量、香农熵、信息增益

news2024/11/24 11:00:31

这节可以搭配

    • 【机器学习】Logistic回归(重新整理)
    • 信息量(信息)
      • 信息量公式的推理过程
    • 香农熵
    • 信息增益

【机器学习】Logistic回归(重新整理)

B站视频:“交叉熵”如何做损失函数?打包理解“信息量”、“比特”、“熵”、“KL散度”、“交叉熵”

信息量(信息)

举个例子:
  如果有人告诉你,今天太阳从东边出来了,那么这条信息的信息量就很低,因为每天的太阳常常从东边出来。
 但是,突然某一天有人告诉你,今天太阳是从西边出来的,那么这条信息的信息量就很高,因为,在你的意识里,太阳几乎不可能从西边出来

“很高”,“很低”这些都是很模糊的形容词,那么我们怎么量化这些信息程度呢?哎嘿!这就是信息量。

信息量公式的推理过程

“日出东方”这是一个大概率事件,其携带信息量很少。而“日出西方”是一个小概率事件,它所携带的信息量就很大了。

从上面可以得出一个结论就是:信息量的高低总是和一个事件的概率负相关(片面理解)

猜想一:那么是不是 1 p i \frac{1}{p_i} pi1 p i p_i pi事件i发生的概率)就可以量化的表示信息的信息量了。
答:不完全正确,虽然在一些情况下,信息量可以通过一个事件发生的概率来表示,但是 1 p i \frac{1}{p_i} pi1并不能准确地表示信息量.

知识点一:在信息论中,通常使用负对数函数来计算信息量。对于一个事件 i,其信息量 I i I_i Ii 可以表示为: I i : = − l o g 2 p i I_i:=-log_2p_i Ii:=log2pi
其中 p i p_i pi表示事件i发生的概率

这个公式的物理意义是,当事件 i 发生的概率越小时,其所包含的信息量就越大。例如,在一组有 8 个等概率的符号中选出一个符号,它所包含的信息量为 − l o g 2 ( 1 8 ) = 3 -log_2(\frac{1}{8})=3 log2(81)=3比特。而当在同一组符号中选出一个概率为 1 的符号时,它所包含的信息量为 − l o g 2 1 = 0 -log_21=0 log21=0 比特。

以2为底的优势就是单位为比特,这个写进了信息量的定义,不能更改。 log的优势是可以将P(AB) = P(A)·P(B) 转化为 I(AB) = I(A)+I(B),逻辑自洽。

香农熵

给定题目:有一枚均匀的硬币 C 1 C_1 C1(正面的概率和抛反面概率都是0.5),还有一枚不均匀的硬币 C 2 C_2 C2(正面概率0.8,反面概率0.2)

  • 事件A:正面
  • 事件B:反面

事件(A|B)发生的难度有多大?这就是熵

简单说,就是

  • 信息量:衡量某一具体事件从不确定到确定的难度大小
  • 熵:衡量整个系统的所有事件从不确定到确定的难度大小

猜想二:是不是可以简单的将系统中的所有事件的信息量加和大小作为整个系统的香农熵值?
答:不完全正确。香农熵是用来衡量一个系统的不确定性或者信息量的度量方式。在信息论中,香农熵通常被定义为一个系统中所有可能事件的信息量的期望值。

知识点一:香农熵是信息论中的一个概念,通常用符号H表示。它描述的是一个离散信源所产生的信息量的平均值。具体地说,如果一个离散信源可以发出n个符号,每个符号出现的概率分别为p1,p2,…,pn,那么这个信源每产生一个符号所带来的信息量就是-log2(pi)(以2为底的对数),而香农熵就是所有符号的信息量的平均值: H = − ∑ p ( x ) ⋅ l o g 2 p ( x ) H=-\sum p(x)·log_2{p(x)} H=p(x)log2p(x)

如果将第一个p(x)修改为y,变化后的公式就是交叉熵。想一想为啥?提示:KL散度

结合上面例子,系统 C 1 、 C 2 C_1、C_2 C1C2的香农熵就是
H C 1 = − ( 0.5 ∗ l o g 2 ( 0.5 ) + 0.5 ∗ l o g 2 ( 0.5 ) ) = 1 H_{C_1}=-(0.5*log_2(0.5)+0.5*log_2(0.5))=1 HC1=(0.5log2(0.5)+0.5log2(0.5))=1
H C 2 = − ( 0.8 ∗ l o g 2 ( 0.8 ) + 0.2 ∗ l o g 2 ( 0.2 ) ) ≈ 0.722 H_{C_2}=-(0.8*log_2(0.8)+0.2*log_2(0.2))≈0.722 HC2=(0.8log2(0.8)+0.2log2(0.2))0.722

信息增益

其公式为:
G a i n ( D , A ) = H ( D ) − ∣ D 1 ∣ D H ( D 1 ) − ∣ D 2 ∣ D H ( D 2 ) Gain(D,A)=H(D)-\frac{|D_1|}{D}H(D_1)-\frac{|D_2|}{D}H(D_2) Gain(D,A)=H(D)DD1H(D1)DD2H(D2)
其中 D 1 、 D 2 D_1、D_2 D1D2为划分数据集

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

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

相关文章

RabbitMQ、RabbitMQ发布/订阅模式

1.RabbiMQ RabbitMQ是一个消息中间件 MQ的基本结构 1.1RabitMQ安装 参考:Docker安装 Docker中部署RabbitMQ 2.入门案例 2.1.publisher实现 package cn.itcast.mq.helloworld;import com.rabbitmq.client.Channel; import com.rabbitmq.client.Connection; im…

链表中倒数第k个结点

描述 输入一个链表,输出该链表中倒数第k个结点。 示例1 输入: 1,{1,2,3,4,5} 复制返回值: {5}看代码 struct ListNode* FindKthToTail(struct ListNode* pListHead, int k ) {struct ListNode* fast pListHead, *slow pListHead;whi…

Redis实现分布式锁详细解读

文章目录 什么是分布式锁?如何用Redis实现分布式锁?分布式锁的改进锁过期处理集群环境下Redis宕机问题RedLock的引入RedLock的实现步骤RedLock带来的弊端 什么是分布式锁? 我们在学多线程的时候遇到过ReetrantLock,这种锁主要应用…

node install编译失败原因

关键报错信息 npm ERR! gyp verb check python checking for Python executable "python2.7" in the PATH npm ERR! gyp verb which failed Error: not found: python2.7 或者 npm ERR! code ERESOLVE npm ERR! ERESOLVE could not resolve npm ERR! npm ERR! Whi…

车载以太网时间同步之EthTsync

车载以太网时间同步之EthTsync 前言 首先,请问大家几个小小问题,你清楚: 你知道EthTsync模块的主要作用是什么吗?EthTsync模块与其他AUTOSAR基础软件模块交互关系;Eth Tsync模块使用的时间同步协议是什么&#xff1f…

Java—JDK8新特性—函数式接口

目录 函数式接口 3.1 什么是函数式接口 3.2 functionalinterface注解 源码分析 3.3 Lambda表达式和函数式接口关系 3.4 使用函数式接口 函数式接口 3.1 什么是函数式接口 如果一个接口中只包含一个抽象方法,这个接口称为函数式接口 如果一个接口包含&#xff0…

mac php8 安装xdebug模块失败

安装 xdebug 模块,官网有详细介绍Xdebug: Documentation Installation 本机是mac php使用brew安装,想着可以直接使用以下方式安装,还是美滋滋的 但是安装途中发生了错误 PHP Warning: mkdir(): File exists in /usr/local/Cellar/php/8.0.10/share/php/pear/System.php on…

解决报错ERROR: No matching distribution found for torchvision==0.11.2+cu111

目录 一、猜测 二、验证 三、解决方案 四、检验 该报错是在按官网方法用指令: pip install torch1.9.1cu111 torchvision0.10.1cu111 torchaudio0.9.1 -f https://download.pytorch.org/whl/torch_stable.html 安装pytorch时出现的,以下是分析&#…

粗糙集属性约简方法与Python实现【1】

1. 方法概述 1.1 定义 粗糙集是波兰理工大学Z.pawlak教授提出用来研究不完整数据,不精确知识的表达、学习,归纳等的一套理论。它是一种新的处理模糊和不确定性问题的数学工具,已被广泛应用于知识发现、机器学习、决策支持、模式识别、专家系统及归纳推理等领域。 粗糙集理…

开源相亲小程序

此项目目前已完成前台开发。源码结构清晰,完美实现模块化组件化思想,易维护。 曾经,作者也为寻求自己的另一半苦恼,因为平时工作繁忙,交际圈窄小,而父母又各种催婚,无奈上了“XX网”去碰碰运气。…

webpack5搭建react框架-antd组件库使用

antd组件库使用 一、前言 前面已经完成了webpack5 react框架的配置搭建,我们在进行项目开发的时候大多还会使用第三方的组件库,而antd组件库在react项目中使用是非常非常多的,所以就将react框架使用最多的antd组件库引入并使用。 二、ant…

京东给了兄弟姐妹们稳稳的幸福

“今天我看了宿舍楼,我真的是气得想打人;我原来一直说的是高级单身公寓!可实际情况呢?我说了多少遍了,要让员工、让兄弟们活的有尊严。而我们宿迁分公司的管理层是怎么做的呢,说难听的就是没有把员工当人去…

低代码平台的多租户SAAS系统实战解决方案—JeecgBoot

JeecgBoot免费低代码平台,提供一键切换多租户模式机制!快速实现全系统的saas租户方案,通过租户ID进行数据隔离。 租户设计思路 1、开启全系统租户隔离 开启方法 将 org.jeecg.config.mybatis.MybatisPlusSaasConfig#OPEN_SYSTEM_TENANT_CO…

RabbitMQ --- 消息可靠性

消息队列在使用过程中,面临着很多实际问题需要思考: 一、消息可靠性 消息从发送,到消费者接收,会经理多个过程: 其中的每一步都可能导致消息丢失,常见的丢失原因包括: 发送时丢失: …

(java)继承和多态 (详解)

目录 1 继承 1.1为什么需要继承 1.2 继承概念 1.3 继承的语法 1.4 父类成员访问 1.4.1 子类中访问父类的成员变量 1.4.2 子类中访问父类的成员方法 1.5 super关键字 1.6 子类构造方法 1.7 super和this 1.7.1 this 1.7.2 super和this 1.8 再谈初始化 1.9 继承方…

软考信管高级——人力资源管理

人力资源管理内容 人力资源管理计划 内容: 角色与职责:定义项目所需的岗位、技能和能力项目组织图,说明项目所需的人员数量人员配备管理计划,说明需要每个团队的时间段以及有助于项目团队参与的其他重要信息 成功的项目团队的特…

Linux安装java jdk

1、检查系统中jdk 版本:java -version 2、检测 jdk 安装包:rpm -qa | grep java 3、卸载 openjdk rpm -e --nodeps tzdata-java-2017b-1.el7.noarch rpm -e --nodeps java-1.8.0-openjdk-1.8.0.131-11.b12.el7.x86_64 rpm -e --nodeps java-1.8.0-open…

深度学习细节总结

计算机视觉 目标检测,语义分割,目标分类 自然语言处理NLP 数据结构 数据结构 访问元素 线性回归 可以看成是一个单层的神经网络,有显式的解 优化算法 梯度下降,超参数:学习率、批量大小 分类回归 单层感知机…

RuntimeError:cuDNN error:CUDNN_STATUS_EXECUTION_FAILED

背景 最近在服务器上跑Deeplabv3进行语义分割时,需要使用GPU版的pytorch。 我在Anaconda下配置了适配服务器CUDA的pytorch,但是报错如下,(下图无限接近于我的错误,但是我忘记截图我的报错了,所以用了下面这…

魔百盒CM211-1S_ZG_增强版2+16_当贝纯净版桌面-卡刷固件包

魔百盒CM211-1S_ZG_增强版216_当贝纯净版桌面-卡刷固件包-内有教程-华为鸿蒙动画 特点: 1、适用于对应型号的电视盒子刷机; 2、开放原厂固件屏蔽的市场安装和u盘安装apk; 3、修改dns,三网通用; 4、大量精简内置的…