信息、信息熵、条件熵、信息增益、信息增益率、GINI指数、交叉熵、相对熵

在信息论与概率统计学中,熵(entropy)是一个很重要的概念。在机器学习与特征工程中,熵的概念也常常是随处可见。自己在学习的过程中也会常常搞混,于是决定将所有与熵有关的概念整理总结,方便查看和学习。

1. 信息

它是熵和信息增益的基础概念。引用香农的话,信息是用来消除随机不确定性的东西。如果一个带分类的事物集合可以划分为多个类别,则其中某个类(xi)的信息定义:

                                                               I(X=x_{i})=-log_{2}p(x_{i})

I(X)用来表示随机变量的信息,p(xi)指是当yi发生时的概率。

2. 信息熵

Shannon在信息论中指出,信息的不确定性可以用熵来表示。在信息论和概率论中熵是对随机变量不确定性的度量,熵其实就是信息的期望值。假设对于一个取有限个值的随机变量Y,其概率分布为:

                                                           P(X=x_{i})=p(x_{i})     i=1,2,3...n

那么随机变量Y的熵可以记作:

                                                          H(X)=\sum_{i=1}^{n}p(x_{i})I(x_{i})=-\sum_{i=1}^{n}p(x_{i})logp(x_{i})

熵只依赖X的分布,和X的取值没有关系。熵是用来度量不确定性,当熵越大,概率说 X=xi 的不确定性越大,反之越小。在机器学习中,熵越大即这个类别的不确定性更大,反之越小,当随机变量的取值为两个时,熵随概率的变化曲线如下图:

当p=0或p=1时,H(p)=0,随机变量完全没有不确定性。当p=0.5时,H(p)=1,此时随机变量的不确定性最大。

3. 条件熵

条件熵是用来解释信息增益而引入的概念。

概率定义:随机变量X在给定条件下随机变量Y的条件熵。即X给定条件下Y的条件概率分布的熵对X的数学期望。

在机器学习中为选定某个特征后的熵,公式如下:

              H(Y/X)=\sum_{i,j}p(x)H(Y/X=x_{i})=-\sum_{i,j}p(x_{i},y_{j})logp(y_{j}/x_{i})=-\sum_{i,j}p(y_{j}/x_{i})p(x_{i})logp(y_{j}/x_{i})

举一简单的例子,假设有数据集D,包含K个类别,每个数据样本中又含有M个特征属性,如果现在按照特征属性A将数据集D划分为两个独立的子数据集D1和D2,则此时整个数据集D的熵就是两个独立数据集D1的熵和数据集D2的熵的加权和,即:

                                          Entropy(D)=\frac{|D1|}{|D|}Entropy(D1)+\frac{|D2|}{|D|}Entropy(D2)

于是便有

                                        Entropy(D)=-\left ( \frac{|D1|}{|D|}\sum_{k=1}^{K} p_{k}log_{2}p_{k}+ \frac{|D2|}{|D|}\sum_{k=1}^{K} p_{k}log_{2}p_{k}\right )

其中,pk表示第k类的样本所占的比例,|D1|、|D2|分别表示数据集D1和D2中样本的个数。

因为此处的熵 Entropy(D)是在将所有样本按照其中一特征属性m划分为子样本集D1和D2的条件下计算出来的,因此又称之为条件熵

4. 信息增益

在概率中定义为:待分类的集合的熵和选定某个特征的条件熵之差(这里只的是经验熵或经验条件熵,由于真正的熵并不知道,是根据样本计算出来的),公式如下:

                        IG(Y/X)=H(Y)-H(Y/X)=[-\sum_{j}p(y_{i})logp(y_{j})]-[-\sum_{i,j}p(y_{j}/x_{i})p(x_{i})logp(y_{j}/x_{i})]

此处仍然以条件熵中的例子来分析,对于给定的数据集,划分前后信息熵的变化量(其实是减少量,因为条件熵肯定小于之前的信息熵)称之为信息增益,即:

                                              igain(D,A)=[-\sum_{k=1}^{K}p_{k}log_{2}p_{k}]-\sum_{p=1}^{P}\frac{|D_{p}|}{|D|}Entropy(D_{p})

其中,|Dp|表示属于第p类的样本的个数。

信息熵表征的是数据集中的不纯度,信息熵越小表明数据集纯度越大。ID3决策树算法就是利用信息增益作为划分数据集的一种方法。信息增益在决策树算法中是用来选择特征的指标,信息增益越大,则这个特征的选择性越好。信息增益做特征选择的优缺点:

优点:

        1.信息增益考虑了特征出现与不出现的两种情况,比较全面,一般而言效果不错。
        2.使用了所有样例的统计属性,减小了对噪声的敏感度。
        3.容易理解,计算简单。

缺点:

      1.信息增益考察的是特征对整个系统的贡献,没有到具体的类别上,所以一般只能用来做全局的特征选择,而没法针对单个类别做特征选择。
      2.只能处理连续型的属性值,没法处理连续值的特征。
      3.算法天生偏向选择分支多的属性,容易导致overfitting。

5. 信息增益率

在信息增益提到,信息增益做特征选择的其中一个缺点就是:算法天生偏向选择分支多的属性导致overfitting。解决办法就是对分支过多的情况进行惩罚(penalty),于是就有了信息增益率(信息增益比)。

特征X的熵:

                                                    H(X)=-\sum_{i=1}^{n}p(x_{i})logp(x_{i})

特征X的信息增益:

                                                   IG(X)=H(Y)-H(Y/X)

信息增益率为:

                                                   g_{r}=\frac{IG(X)}{H_{m}(X)}=\frac{H(Y)-H(Y/X)}{H_{m}(X)}

此处仍然以条件熵中的例子来分析,在机器学习中,信息增益率也是选择最优划分属性的一种方法,其定义:

                                                      gain_ratio(D,A)=\frac{igain(D,A)}{IV(A)}

其中,IV(A)被称为特征属性A的“固定值”,即:

                                                          IV(A)=-\sum_{p=1}^{P}\frac{|D_{p}|}{|D|}log_{2}\frac{|D_{p}|}{|D|}

其中,|Dp|表示属于第p类的样本的个数。在决策树算法中,ID3使用信息增益,而c4.5决策树算法使用就是信息增益率。

6. GINI指数

Gini指数是一种与信息熵类似的做特征选择的方式,可以用来表征数据的不纯度。在CART(Classification and Regression Tree)算法中利用基尼指数构造二叉决策树。Gini系数的计算方式如下:

                                                      Gini(D) = \sum_{i=1}^{n}p(x_{i})\cdot [1-p(x_{i})]=1-\sum_{i=1}^{n}p(x_{i})^{2}

其中,D表示数据集全体样本,p(xi)表示每种类别出现的概率。

取个极端情况,如果数据集中所有的样本都为同一类,那么有p0=1,Gini(D)=0,显然此时数据的不纯度最低。与信息增益类似,我们可以计算如下表达式:

                                                           \bigtriangleup Gini(X)=Gini(D)-Gini_{X}(D)

上式表示,加入特征X以后,数据不纯度减小的程度。很明显,在做特征选择的时候,我们可以取ΔGini(X)最大的那个。

此处仍然以条件熵中的例子来分析,以特征属性A将数据集D划分为独立的两个数据集D1和D2,则此时基尼指数为:

                                                   Gini(D,A)=\frac{|D1|}{|D|}Gini(D1)+\frac{|D2|}{|D|}Gini(D2)

在机器学习中,CART决策树算法就是利用GINI指数作为划分数据集的标准。

7. 交叉熵

假设现有样本集的2个概率分布p和q,其中p为真实分布,q非真实分布。按照真实分布p来衡量识别一个样本的熵,即基于分布p给样本进行编码的最短平均编码长度为:

                                                               H(X)=-\sum_{i=1}^{n}p(x_{i})logp(x_{i})

如果使用非真实分布q来给样本进行编码,则是基于分布q的信息量的期望(最短平均编码长度),由于用q来编码的样本来自分布p,所以期望与真实分布一致。所以基于分布q的最短平均编码长度为:

                                                           CEH(p,q)=-\sum_{i=1}^{n}p(x_{i})log q(x_{i})

上式CEH(p, q)即为交叉熵的定义。

8. 相对熵

将由q得到的平均编码长度比由p得到的平均编码长度多出的bit数,即使用非真实分布q计算出的样本的熵(交叉熵),与使用真实分布p计算出的样本的熵差值,称为相对熵,又称KL散度

                                                  KL(p,q)=CEH(p,q)-H(p) =\sum_{i=1}^{n}p(x_{i})log\frac{p(x_{i})}{q(x_{i})}

相对熵(KL散度)用于衡量两个概率分布p和q的差异。注意,KL(p, q)意味着将分布p作为真实分布,q作为非真实分布,因此:

                                                                           KL(p,q)\neq KL(q,p)

参考资料:

http://www.cnblogs.com/fantasy01/p/4581803.html?utm_source=tuicool

https://blog.csdn.net/xbmatrix/article/details/56691137

https://blog.csdn.net/bitcarmanlee/article/details/51488204

https://www.cnblogs.com/muzixi/p/6566803.html

 

  • 7
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值