信息增益 IG

来源:互联网 发布:ipad淘宝有微淘吗 编辑:程序博客网 时间:2024/04/27 20:23

今天在看特征选择CHI的时候,发现里面有个知识点叫做信息增益;感觉似懂非懂,特别模糊,所以找了好多dalao的文章,通俗的讲解下什么是信息增益以及相关知识。

什么是熵?

在接下里的链接里,会通俗的讲解https://ask.julyedu.com/question/6897

什么是信息熵?

首先看下公式:

H(x) = -∑p(xi)log(2,p(xi)) (i=1,2,..n)

其中P(x_{i}) 代表随机事件X为x_{i} 的概率,下面来逐步介绍信息熵的公式来源!


信息量

信息量是对信息的度量,就跟时间的度量是秒一样,当我们考虑一个离散的随机变量x的时候,当我们观察到的这个变量的一个具体值的时候,我们接收到了多少信息呢?

多少信息用信息量来衡量,我们接受到的信息量跟具体发生的事件有关。

信息的大小跟随机事件的概率有关。越小概率的事情发生了产生的信息量越大,如XXX产生的地震了;越大概率的事情发生了产生的信息量越小,如太阳从东边升起来了(肯定发生嘛,没什么信息量)

因此一个具体的事件的信息量随着其发生概率而减小,并且不能为负。

但是信息量函数的表达形式如何给出的?

如果我们有俩个不相关的事件x和y,那么我们观察到的俩个事件同时发生时获得的信息应该等于观察到的事件各自发生时获得的信息之和,即:

h(x,y) = h(x) + h(y)

由于x,y是俩个不相关的事件,那么满足p(x,y) = p(x)*p(y).

根据上面推导,我们很容易看出h(x)一定与p(x)的对数有关(因为只有对数形式的真数相乘之后,能够对应对数的相加形式,可以试试)。因此我们有信息量公式如下:

h(x)=-log_{2}p(x) 

下面解决俩个疑问?

(1)为什么有一个负号

其中,负号是为了确保信息一定是正数或者是0,总不能为负数吧!

(2)为什么底数为2

这是因为,我们只需要信息量满足低概率事件x对应于高的信息量。那么对数的选择是任意的。我们只是遵循信息论的普遍传统,使用2作为对数的底!


信息熵

信息量度量的是一个具体事件发生了所带来的信息,而熵则是在结果出来之前对可能产生的信息量的期望——考虑该随机变量的所有可能取值,即所有可能发生事件所带来的信息量的期望。即

H(x)=-sum (p(x)log_{2}p(x) )  => H(x) = -∑p(xi)log(2,p(xi)) (i=1,2,..n)

对于信息熵的另一种理解,是可以作为一个系统复杂程度的度量,越复杂,出现的不同情况种类越多,信息熵越大;反之,系统越简单,出现情况的种类越少,信息熵越小。(极端情况为1种情况,那么对应概率为1,那么对应的信息熵为0)


信息增益

信息熵代表随机变量的复杂度;

条件熵代表在一定条件下,随机变量的复杂度;

而信息增益就是信息熵-条件熵

信息增益代表了在一个条件下,信息复杂度(不确定性)减少的程度。

比如说,我们对一个是事件的信息什么都不知道的话,我们做决定的时候不确定性大约这么多(一个值);而当我们在一定条件下或者知道某个特征的情况下,不确定度就减少了一个值,而这个值就是信息增益;在诸多特征中,某个特征的信息增益是最大的,那么根据这个特征所作出的决定不确定度减少的也是最多的。

但信息增益最大的问题还在于它只能考察特征对整个系统的贡献,而不能具体到某个类别上,这就使得它只适合用来做所谓“全局”的特征选择(指所有的类都使用相同的特征集合),而无法做“本地”的特征选择(每个类别有自己的特征集合,因为有的词,对这个类别很有区分度,对另一个类别则无足轻重)。


在文本分类中,特征词t的取值只有t(代表t出现)和clip_image006(代表t不出现)。那么


最后,信息增益


但信息增益最大的问题还在于它只能考察特征对整个系统的贡献,而不能具体到某个类别上,这就使得它只适合用来做所谓“全局”的特征选择(指所有的类都使用相同的特征集合),而无法做“本地”的特征选择(每个类别有自己的特征集合,因为有的词,对这个类别很有区分度,对另一个类别则无足轻重)。

实现方法:
1  统计正负分类的文档数:N1、N2。
2  统计每个词的正文档出现频率(A)、负文档出现频率(B)、正文档不出现频率(C)、负文档不出现频率(D)。
3  计算信息熵


4  计算每个词的信息增益


5  将每个词按信息增益值从大到小排序,选取前k个词作为特征,k即特征维数。

原创粉丝点击