信息熵的定义很简单,怎么理解和运用信息熵还是有点头疼;
首先,我们看一下定义:
信息熵:
有离散随机变量及其分布:
则随机变量X的熵定义为:
其中的通常为2;此时熵的单位为
信息量:
随机变量的信息量为:
利用python作图源代码如下:
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
x=np.linspace(0,1,50)
y=-np.log2(x)
plt.figure()
plt.plot(x,y)
plt.show()
从图中可以直观的得到:
- 概率越小,信息量越大;
- 如有人告诉你说公鸡下蛋了,那真是大大的信息量,到底出了神马事呢,你需要收集很多证据证词,蹲点观察等等,所以说信息量大;
- 概率越大,信息量越小;
- 如有人告诉你太阳每天都从东边升起,那真是索然无味,你让他滚一边去,因为没有什么信息量;
根据信息量来看信息熵:
那么从信息量的定义来看信息熵,我们发现信息熵是信息量的期望;
信息量大的变量,概率值很小;信息量小的变量,概率值很大;
讨论公鸡下蛋和太阳从东边升起好像都没多大意思,还是关注这样事件比较好,如股票涨跌,油价涨跌等;
信息熵就是这样的度量:不极端的分布信息熵大,极端的分布信息熵小;用比较官方的话来说就是:信息熵是表示随机变量不确定的度量,是对所有可能发生事件信息量的期望。
- 对随机变量个数相同的分布,概率越集中于平均分布,信息熵越大(纵向比较);
- 随机变量个数越多,则信息熵越大(横向比较2vs3);
信息熵的最大值出现在所有变量服从均匀分布的情况下。
从上的讨论可以看出,离散随机变量的分布越杂乱,越不确定,则对应的信息熵就越大。
信息熵单位为bits,也就意味着需要用更多的bits来表示这段信息。
如变量有4个状态:
如果4个状态是均匀分布的,那么我们计算信息熵为,意味着我们至少需要2bits来表达和传输这4个状态;
如果4个状态的概率为,则计算,此时可以利用哈夫曼编码来表达和传输这4个状态[1];
1:详解机器学习中的熵、条件熵、相对熵和交叉熵
2:《统计学习方法》--李航
-
参考1《详解机器学习中的熵、条件熵、相对熵和交叉熵》 ↩
网友评论