最近在看西瓜书中决策树的内容时,觉得对信息熵的理解还不是很深入,于是在网上看了不少讲解以后,加深了自己对信息熵的理解。
信息熵公式
先扔出信息熵公式:
$$\Large H(x)=-\sum\limits_{i=1}^np(x_i)log_2p(x_i) $$
其中$p(x_i)$表示随机事件$x_i$发生的概率
信息量
信息量是信息的度量,也就是考虑一个离散的随机变量$x$时,我们接受到了多少信息。
信息的大小跟随机事件的概率有关。越小概率的事情发生了产生的信息量越大,如湖南产生的地震了;越大概率的事情发生了产生的信息量越小,如太阳从东边升起来了(肯定发生嘛,没什么信息量)。这很好理解!
例子:
脑补一下一段日常对话:
室友A走过来,今天你们湖南益阳发生地震了!
我:啊?怎么可能,我们那边从来没有发生过地震,这概率也太小了吧,我得赶紧打个电话问问爸妈什么情况。你告诉我的这个事情信息量巨大啊!
过了一会儿,室友B过来了:听说我们专业xxx同学又在调查各种人的情况。
我:哈哈哈哈,这事情大家早就已经知道了,这个人就是这样的,你这信息一点含金量都没有,下次八卦一点有用的事情吧~orz.
因此一个具体事件的信息量应该是随着其发生概率而递减的,且不能为负。
如果我们有两个不相关的事件$x$和$y$,那么我们观察到的两个事件同时发生时获得的信息应该等于观察到的事件各自发生时获得的信息之和,即:
$$\Large h(x,y)=h(x)+h(y)$$
由于$x,y$是两个不相关事件,所以 $$\Large p(xy)=p(x)·p(y)$$
根据上述推导,我们很容易看出$h(x)$与$p(x)$之间存在某种对数关系(因为只有对数之间相乘之后指数才会相加)。因此我们可以得到信息量公式如下:
$$\Large h(x)=-log_{2}p(x) $$
大家肯定会有两个疑问:
- 为什么会有个负号
因为$p(x)$是小于1的,此时其对数为负数,其实信息量的定义为概率倒数的对数,所以负号实际上可以避免信息量为负数。
- 为什么底数为2
这是因为,我们只需要信息量满足低概率事件x对应于高的信息量,所以按照惯例就使用2作为底数了。
信息熵
下面我们正式引出信息熵。
信息量度量的是一个具体事件发生了所带来的信息,而熵则是在结果出来之前对可能产生的信息量的期望——考虑该随机变量的所有可能取值,即所有可能发生事件所带来的信息量的期望。即
$$\Large H(x)=-sum (p(x)log_{2}p(x) )$$
转换一下为:
$$\Large H(x)=-\sum\limits_{i=1}^np(x_i)log_2p(x_i)$$
最终我们的公式来源推导完成了。
这里我再说一个对信息熵的理解。信息熵还可以作为一个系统复杂程度的度量,如果系统越复杂(相当于包含的信息量多),出现不同情况的种类越多,那么他的信息熵是比较大的。
如果一个系统越简单,出现情况种类很少(极端情况为1种情况,那么对应概率为1,那么对应的信息熵为0),此时的信息熵较小。