一、信息熵
- 在机器学习中,绕不开的一个概念就是熵 (Entropy),信息熵。信息熵常被用来作为一个系统的信息含量的量化指标,从而可以进一步用来作为系统方程优化的目标或者参数选择的判据。在决策树的生成过程中,就使用了熵来作为样本最优属性划分的判据。
信息熵的定义公式:
H ( X ) = − ∑ i = 1 n p ( x i ) l o g p ( x i ) H(X)=-\sum_{i=1 } ^{n} p(x_i)logp(x_i) H(X)=−i=1∑np(xi)logp(xi)
-
信息量度量的是一个具体事件发生了所带来的信息,而熵则是在结果出来之前对可能产生的信息量的期望——考虑该随机变量的所有可能取值,即所有可能发生事件所带来的信息量的期望。即上式
-
信息熵还可以作为一个系统复杂程度的度量,如果系统越复杂,出现不同情况的种类越多,那么信息熵就越大。
-
如果一个系统越简单,出现情况种类很少(极端情况为1种情况,那么对应概率为1,那么对应的信息熵为0),此时的信息熵越小。
根据克劳德·香农给出的信息熵的三个性质:
- 单调性,发生概率越高的事件,其携带的信息量越低;
- 非负性,信息熵可以看作为一种广度量,非负性是一种合理的必然;
- 累加性,即多随机事件同时发生存在的总不确定性的量度是可以表示为各事件不确定性的量度的和,这也是广度量的一种体现。
二、编码压缩实例
例:
-
一串消息包含A,B,C,D,E共5类符号,其内容是
AABBBBAAAACCCCCCCCCEEEEEEDDDDEEEEEEEEEEEEE,
请问其信息熵是多少?如果分别采用香农-范诺编码,霍夫曼编码,压缩率分别是多少?
符号 | A | B | C | D | E |
---|---|---|---|---|---|
出现概率 | 6/42 | 4/42 | 9/42 | 4/42 | 19/42 |
此时用二进制编码来表示这 5 种符号至少需要 3 位二进制编码(0、1、10、11、100)
因为这一串消息有 42 个符号,则需 3 × 42 = 126 位数据来表示这 42 个符号
2.1 信息熵
根据公式
H ( X ) = − ∑ i = 1 n p ( x i ) log 2 p ( x i ) H(X)=-\sum_{i=1 } ^{n} p(x_i)\log_2p(x_i) H(X)=−i=1∑np(xi)log2p(xi)
计算出信息熵
H ( X ) = 2.043 S h H(X)=2.043Sh H(X)=2.043Sh
2.2 香农-范诺编码
按照符号出现次数由多到少进行排列,方便进行香农-范诺编码
符号 | E | C | A | B | D |
---|---|---|---|---|---|
出现概率 | 19/42 | 9/42 | 6/42 | 4/42 | 4/42 |