本文主要是介绍信息、信息熵、条件熵、信息增益、信息增益率、GINI指数、交叉熵、相对熵,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
在信息论与概率统计学中,熵(entropy)是一个很重要的概念。在机器学习与特征工程中,熵的概念也常常是随处可见。自己在学习的过程中也会常常搞混,于是决定将所有与熵有关的概念整理总结,方便查看和学习。
1. 信息
它是熵和信息增益的基础概念。引用香农的话,信息是用来消除随机不确定性的东西。如果一个带分类的事物集合可以划分为多个类别,则其中某个类(xi)的信息定义:
I(X)用来表示随机变量的信息,p(xi)指是当yi发生时的概率。
2. 信息熵
Shannon在信息论中指出,信息的不确定性可以用熵来表示。在信息论和概率论中熵是对随机变量不确定性的度量,熵其实就是信息的期望值。假设对于一个取有限个值的随机变量Y,其概率分布为:
那么随机变量Y的熵可以记作:
熵只依赖X的分布,和X的取值没有关系。熵是用来度量不确定性,当熵越大,概率说 X=xi 的不确定性越大,反之越小。在机器学习中,熵越大即这个类别的不确定性更大,反之越小,当随机变量的取值为两个时,熵随概率的变化曲线如下图:
当p=0或p=1时,H(p)=0,随机变量完全没有不确定性。当p=0.5时,H(p)=1,此时随机变量的不确定性最大。
3. 条件熵
条件熵是用来解释信息增益而引入的概念。
概率定义:随机变量X在给定条件下随机变量Y的条件熵。即X给定条件下Y的条件概率分布的熵对X的数学期望。
在机器学习中为选定某个特征后的熵,公式如下:
举一简单的例子,假设有数据集D,包含K个类别,每个数据样本中又含有M个特征属性,如果现在按照特征属性A将数据集D划分为两个独立的子数据集D1和D2,则此时整个数据集D的熵就是两个独立数据集D1的熵和数据集D2的熵的加权和,即:
于是便有
其中,pk表示第k类的样本所占的比例,|D1|、|D2|分别表示数据集D1和D2中样本的个数。
因为此处的熵 Entropy(D)是在将所有样本按照其中一特征属性m划分为子样本集D1和D2的条件下计算出来的,因此又称之为条件熵。
4. 信息增益
在概率中定义为:待分类的集合的熵和选定某个特征的条件熵之差(这里只的是经验熵或经验条件熵,由于真正的熵并不知道,是根据样本计算出来的),公式如下:
此处仍然以条件熵中的例子来分析,对于给定的数据集,划分前后信息熵的变化量(其实是减少量,因为条件熵肯定小于之前的信息熵)称之为信息增益,即:
其中,|Dp|表示属于第p类的样本的个数。
信息熵表征的是数据集中的不纯度,信息熵越小表明数据集纯度越大。ID3决策树算法就是利用信息增益作为划分数据集的一种方法。信息增益在决策树算法中是用来选择特征的指标,信息增益越大,则这个特征的选择性越好。信息增益做特征选择的优缺点:
优点:
1.信息增益考虑了特征出现与不出现的两种情况,比较全面,一般而言效果不错。
2.使用了所有样例的统计属性,减小了对噪声的敏感度。
3.容易理解,计算简单。
缺点:
1.信息增益考察的是特征对整个系统的贡献,没有到具体的类别上,所以一般只能用来做全局的特征选择,而没法针对单个类别做特征选择。
2.只能处理连续型的属性值,没法处理连续值的特征。
3.算法天生偏向选择分支多的属性,容易导致overfitting。
5. 信息增益率
在信息增益提到,信息增益做特征选择的其中一个缺点就是:算法天生偏向选择分支多的属性导致overfitting。解决办法就是对分支过多的情况进行惩罚(penalty),于是就有了信息增益率(信息增益比)。
特征X的熵:
特征X的信息增益:
信息增益率为:
此处仍然以条件熵中的例子来分析,在机器学习中,信息增益率也是选择最优划分属性的一种方法,其定义:
其中,IV(A)被称为特征属性A的“固定值”,即:
其中,|Dp|表示属于第p类的样本的个数。在决策树算法中,ID3使用信息增益,而c4.5决策树算法使用就是信息增益率。
6. GINI指数
Gini指数是一种与信息熵类似的做特征选择的方式,可以用来表征数据的不纯度。在CART(Classification and Regression Tree)算法中利用基尼指数构造二叉决策树。Gini系数的计算方式如下:
其中,D表示数据集全体样本,p(xi)表示每种类别出现的概率。
取个极端情况,如果数据集中所有的样本都为同一类,那么有p0=1,Gini(D)=0,显然此时数据的不纯度最低。与信息增益类似,我们可以计算如下表达式:
上式表示,加入特征X以后,数据不纯度减小的程度。很明显,在做特征选择的时候,我们可以取ΔGini(X)最大的那个。
此处仍然以条件熵中的例子来分析,以特征属性A将数据集D划分为独立的两个数据集D1和D2,则此时基尼指数为:
在机器学习中,CART决策树算法就是利用GINI指数作为划分数据集的标准。
7. 交叉熵
假设现有样本集的2个概率分布p和q,其中p为真实分布,q非真实分布。按照真实分布p来衡量识别一个样本的熵,即基于分布p给样本进行编码的最短平均编码长度为:
如果使用非真实分布q来给样本进行编码,则是基于分布q的信息量的期望(最短平均编码长度),由于用q来编码的样本来自分布p,所以期望与真实分布一致。所以基于分布q的最短平均编码长度为:
上式CEH(p, q)即为交叉熵的定义。
8. 相对熵
将由q得到的平均编码长度比由p得到的平均编码长度多出的bit数,即使用非真实分布q计算出的样本的熵(交叉熵),与使用真实分布p计算出的样本的熵的差值,称为相对熵,又称KL散度。
相对熵(KL散度)用于衡量两个概率分布p和q的差异。注意,KL(p, q)意味着将分布p作为真实分布,q作为非真实分布,因此:
参考资料:
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
这篇关于信息、信息熵、条件熵、信息增益、信息增益率、GINI指数、交叉熵、相对熵的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!