信息论中的熵(香农熵)

表示一个数所需最少位bit

很简单, 如果数为x, 则最少需要 lb(x) = log2(x) 位bit来表示

很明显这个对大多数x得到的是一个小数

LOG2(x) = [log2(x)]

其中 [x] 表示不小于x的最大整数

若元素集合:
S = {p1, p2, p3, … , pi}

则对于集合S的熵H表达如下:
H(S) = -( p1lb(p1) + p2lb(p2) + … + pi*lb(pi)
即:
在这里插入图片描述

S为某个集合, p1~pn为S集合中的元素, H则表示某个集合S的熵

准确的说, 上述描述并不完整

对于一份数据G = [g1, g2, g3, g4, ...... , gn]
其包含的元素集合(每个元素只出现一次)为: S = set(G) = (s1, s2, ... , si]
P(si) = count(si) / length(G)
其中count(si)表示元素si在G中出现的次数, length(G)表示G的长度n
H(S)中的S其实对应的是数据集G的元素集合S

这里的熵的提出者是香农
熵还有很多其他意思

熵(名词)

物理学:
一个热力学量,表示的是一个系统中无法转换为机械功的热能的量,
通常被解释为该系统的无序度或随机度

H. P. Lovecraft: 
无序或缺乏可预测性,逐渐退化为混乱

信息论中的解释: 
对在特定的消息或语言中信息传输速度的一种对数度量

熵的作用

对于数据G
其元素集合为S=set(G)
H表示的是 si 所需要的最少的二进制bit位(其实这是错误的, 详见后续)

例如数据G = [A, B, B, C, C, C, D, D, D, D]
H(G)≈1.85
对其向上取整为2, 则我们可以大致认为平均每个值用两个二进制位就可以对G进行编码:

S = set(G) = [ A, B, C, D]
A: 00
B: 01
C: 10
D: 11

则G^e如下
e = [00, 01, 01, 10, 10, 10, 11, 11, 11, 11]

在这里插入图片描述
其实如果只是要算最终对数据G需要多少个二进制位来表示, 只需要将H向上取整然后乘以G的长度

熵的局限性

熵只是考虑了一个集合中某个符号出现的概率
但是没有考虑集合中元素的关系

例如集合[1,4,2,3] 与集合[1,2,3,4]
虽然他们的熵H相等, 但实际上[1,2,3,4]还多表示了一个顺序关系


笔者到这里更不动了
因为还要准备考研
7月份才决定考研
这些内容其实是前阵子发在github上的
今天搬运回CSDN发现坑蛮多, 于是补充了一些

但是数据压缩嘛, 内容很多的啦
所以后续几篇我直接搬了, 就不补充了qwq
这里的东西也不继续补充了
等我复习完再回来填坑hhh
__2022/8/14_23:57__
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BetterChinglish

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值