在开始解释信息熵和信息增益之前,我们先来解释一下什么是信息:能消除不确定性的内容才能叫信息,而告诉你一个想都不用想的事实,那不叫信息。
比如数据分析师的工作经常是要用数据中发现信息,有一天上班你告诉老大从数据中发现我们的用户性别有男有女。。。(这不废话吗?)这不叫信息,但是如果你告诉老大女性用户的登录频次、加购率,浏览商品数量远高于男性,且年龄段在25岁~30岁的女性用户消费金额最多,15-20岁最少,那么我相信你老大会眼前一亮的!!!
首先来我们来弄明白信息是如何传递的。信息传递是由一个信源、信道、信宿三部分组成的信息传递系统实现的。其中,信源是信息的发送端,信宿是信息的接收端。
信息传递存在于一个随机干扰的环境中,因此传递系统对信息的传递是存在随机误差的。如果将发送的信息记为U,接收的信息记为V,那么信道可记为信道模型,记为P(U|V)。
信道模型是一个条件概率矩阵P(U|V),成为信道传输概率矩阵,记为:
表示信宿收到信息而信源发出信息的概率。
在实际通信之前,信宿不可能确切了解信源究竟会发出什么样的确切信息,也不可能判断信源处于什么状态,这种情形称为信宿都信源具有不确定性。因为这种不确定性是通信之前的,所以称为先验不确定性;实际通信以后,信宿收到信源发来的信息,先验不确定性才能被消除或减少。如果干扰很小,不会对传递的信息产生任何可察觉的影响,信源发出的信息被信宿全部收到,信宿的不确定性就被完全消除。但在一般情况下,干扰总会对信源发出的信息造成某种破坏,使信宿收到的信息不完全,因此,先验不确定新不能被完全消除,只能部分被消除。即通信结束后,信宿仍然具有一定程度的不确定性,称为后验不确定性。
如果后验不确定性等于先验不确定性,表示信宿完全没有接收到信息,如果后验不确定性等于0,表示接收到了全部的信息。可见,信息是用来消除不确定性的。
如何衡量信息量?1948年有一位科学家香农从引入热力学中的熵概念,得到了信息量的数据公式:
代表信息发生的可能性,发生的可能性越大,概率越大,则信息越少,通常将这种可能性叫为不确定性,越有可能则越能确定则信息越少;比如中国与西班牙踢足球,中国获胜的信息量要远大于西班牙胜利(因为这可能性实在太低~~)。
以下是和的关系图,横坐标为,纵坐标为,可以看到概率越大,信息越少。
信息熵是信息量的数学期望,是信源发出信息前的先验不确定性,也成先验熵,信息熵的数学定义为:
可见,如果信息熵等于0,表示只存在唯一的信息发送可能,即,没有发送的不确定性;如果信源的k个信号有相同的发送概率,即所有的有,即信息熵达到最大,不确定性最大。所以差别越小,信息熵越大,平均不确定性最大。差别越大,信息熵就越小,平均不确定性越小。
假设有两个信源和,则有,以下是与的关系图,是横坐标,是纵坐标:
当已知信号U的概率分布P(U)且收到信号,发出信号的概率变为,于是信源的不确定性变为:
称为后验熵,表示信宿收到后对发出信号U的度量值。由于收到信号是个随机变量,后验熵的期望为:
称为条件熵,表示信宿收到所有V后,对发出信号U任然存在的不确定性(后验不确定性),这是由随机干扰引起的。
通常,于是就称为信息增益,反映的是信息消除随机不确定性的程度。
信息熵和信息增益用的最多的就是决策树了,在决策树中,我们会找到信息增益最大的输入变量作为最佳分组变量,例如我们有两个输入变量性别和年龄段,输出变量是客户是否购买。
性别(F1) | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 |
年龄段(F2) | B | A | A | C | B | B | C | C | C | A | B | A | A | C |
是否购买 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 1 |
决策树会把输出变量当做信源U,输入变量看做信宿接受到的一系列信息V。在实际通信之前,也就是决策树建立之前,输出变量对信宿来说是完全随机的,其平均不确定性为:
而在实际通信中,也就是决策树建立过程中,随着信宿接收到信息,也就是考察了输入变量(例如F2年龄段),则条件熵为:
于是,信息增益为:
同理,还可以计算F1性别的信息增益为:
容易理解,此时应选择信息增益最大的输入变量F2年龄段作为最佳分组变量,因为它消除信宿对信源的平均不确定性的能力最强。或者说,由此进行的样本分组,输出变量在两个组内部取值的趋同程度最高,即各组内部的差别大,这当然是人们所期望的结果。
从上面的例子应该看到,这个选择标准以信息增益值的大小为标准。事实上,这种方式存在一定的问题,主要表现为类别之多的输入变量比类别值少的输入变量有更多的机会称为当前最佳分组变量。
如F2年龄段比F1性别具有作为最佳分组变量的“先天”优势。为了有助理解,将上面的例子F2年龄段的取值进行调整,将A拆成A1和A2,相当于增加了一个分类:
性别(F1) | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 1 | 0 | 1 | 1 | 0 | 0 |
年龄段(F2) | B | A1 | A2 | C | B | B | C | C | C | A1 | B | A1 | A2 | C |
是否购买 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 1 |
由此得到的信息增益:
可见这个结果比数据调整前增大了。
为了解决这个问题,不仅考虑信息增益的大小程度,还兼顾考虑为获得信息增益所付出的“代价”:信息增益率的数据定义为:
可见,如果输入变量V有较多的分类值,则它的信息熵会偏大,而信息增益率会因此降低,进而消除了类别数目所带来的影响。
例如,第四章表中F2的信息增益率为:,而在本章F2年龄段的信息增益率为:,信息增益率没有增大。
而F1性别的信息增益率为,F1性别的信息增益率仍然小于F2年龄段,还应选择F2年龄段作为当前最佳分组变量。
与信息熵和信息增益类似,先验基尼系数为:
后验基尼系数为:
后验基尼系数的期望,也就是条件基尼系数为:
基尼增益为:
基尼系数和信息熵没有谁优谁劣的说法,在实际模型中效果基本不相上下,但是由于基尼系数的计算公式比较简单,不需要log,所以计算速度会更快。