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

【机器学习】4 ——熵

机器学习4 ——熵


文章目录

  • 机器学习4 ——熵
  • 前言


前言

熵衡量随机变量不确定性,由克劳德·香农(Claude Shannon)在1948年提出,称为香农熵。反映了一个系统中信息的混乱程度或信息量。

其定义为:
H ( P ) = − ∑ x P ( x ) l o g P ( x ) H(P)=-\sum_{x}^{} P(x)logP(x) H(P)=xP(x)logP(x)

  • 其中:X 是一个随机变量,它有 𝑛 种可能的取值
  • P(x)是X 取值为 x的概率。
  • 熵 H( P) 表示随机变量 X 的信息不确定性,单位通常是比特(bits)。

如果所有事件发生的概率相等,熵最大。这时系统的不可预测性最高。
如果某个事件的概率为 1(确定发生),熵为 0,这时系统的不可预测性为零。


香农熵可以用来描述信息传输中的不确定性。假设你正在接收一个信息流:

  • 完全不确定:如果每个符号都以相同的概率出现(如一枚公平硬币的正反面),则你无法预测下一个符号,系统的熵最大。
  • 完全确定:如果你知道每次接收的符号都是固定的(如一枚失衡硬币总是正面朝上),熵为零,因为你不需要额外的信息去描述这个符号的状态。

熵的概念帮助解释如何对数据进行压缩。熵越高,意味着需要更多的比特来精确编码这些数据。熵越低,数据压缩的潜力越大。

因为数据压缩就是相同的符号不必反复存储(可能不严谨,有人知道更详细可以评论区科普一下!)

二进制随机变量的熵
考虑一个简单的例子,随机变量 X 代表抛硬币的结果。假设X 只有两个可能的取值,“正面”(1)和"反面"(0),其概率为𝑝(1)=0.5,𝑝(0)=0.5,熵为:

H(X)=−(0.5log 0.5+0.5log 0.5)=−(0.5×(−1)+0.5×(−1))=1 bit

这个结果意味着,对于一枚公平的硬币,我们需要 1 比特来表示它的结果。

不公平硬币
如果硬币是偏向的,比如 p(1)=0.9,p(0)=0.1,则熵为:

H(X)=−(0.9log 0.9+0.1log 0.1)≈0.469 bit

由于硬币的结果倾向于 “正面”(1),系统的不确定性减小,熵也减少了。此时我们需要的比特数更少。

信息熵的应用

数据压缩:熵是衡量数据压缩的极限。熵越高,表示数据越难以压缩;熵越低,数据压缩率越高。霍夫曼编码和算术编码等数据压缩算法就是基于熵的原理设计的。
v
信息传输:在通信系统中,熵用于估计数据传输中的最小编码长度。一个理想的编码系统应尽可能接近熵的极限。
v
机器学习:在决策树算法(如 ID3、C4.5 和 CART)中,熵用于衡量数据集的纯度。决策节点的选择基于信息增益(熵的变化),从而决定哪个特征对划分数据最有价值。
v
密码学:在密码学中,熵用于衡量密钥的随机性。熵越高,密钥的随机性和安全性越高。低熵的密钥容易被攻击者预测。
v
自然语言处理:熵用于衡量语言中的信息量,帮助理解文本复杂度和压缩潜力。
v
经济学:在经济学中,熵理论被应用于市场分析和资源分配,以衡量系统的混乱度和均衡状态。

http://www.lryc.cn/news/437872.html

相关文章:

  • linux命令用于删除文本文件中的重复行的命令uniq详解
  • PHP智驭未来悦享生活智慧小区物业管理小程序系统源码
  • 深度学习:怎么看pth文件的参数
  • MMLU-Pro 基准测试数据集上线,含 12k 个跨学科复杂问题,难度提升,更具挑战性!DeepSeek 数学模型一键部署
  • Vue | Vue深入浅出——Vue中的render函数详解
  • 数学基础 -- 线性代数之奇异值
  • Python爬虫使用实例-wallpaper
  • 探索Go语言中的随机数生成、矩阵运算与数独验证
  • 无线安全(WiFi)
  • 牛客练习赛128:Cidoai的平均数对(背包dp)
  • Python世界:简易地址簿增删查改算法实践
  • 网络安全-intigriti-0422-XSS-Challenge Write-up
  • Debian Linux 11 使用crash
  • python列表 — 按顺序找出b表中比a表多出的元素
  • 如何使用Python创建目录或文件路径列表
  • 领夹麦克风哪个品牌好,哪种领夹麦性价比高,无线麦克风推荐
  • 苍穹外卖学习笔记(五)
  • 什么是卷积层、池化层、BN层,有什么作用?
  • [学习笔记]《CSAPP》深入理解计算机系统 - Chapter 4 处理器体系结构Chapter 5 优化程序性能
  • 案例分享|我是这样转型做数据产品经理的?
  • ffmpeg面向对象-rtsp拉流相关对象
  • feign client发送Post请求,发送对象参数,服务端接收不到正确参数报错排查
  • Hadoop林子雨安装
  • Springboot项目总结
  • 目标检测从入门到精通——数据增强方法总结
  • SQL server 的异常处理 一个SQL异常 如何不影响其他SQL执行
  • STM32——看门狗通俗解析
  • 点亮第一盏LED灯 5): stm32CubeMX生成Keil代码
  • ollama语言大模型部署使用
  • redis 基本数据类型—string类型