什么是信息增益(Information Gain)?
当我们需要对一个随机事件的概率分布进行预测时,我们的预测应当满足全部已知的条件,而对未知的情况不要做任何主观假设。在这种情况下,概率分布最均匀,预测的风险最小。因为这时概率分布的信息熵最大,所以称之为“最大熵法”。最大熵法在数学形式上很漂亮,但是实现起来比较复杂,但把它运用于金融领域的诱惑也比较大,比如说决定股票涨落的因素可能有几十甚至上百种,而最大熵方法恰恰能找到一个同时满足成千上万种不同条件的模型。
这里我们先不讨论算法(这里用的是ID3/C4.5),把一棵决策树建立起来再说。我们要建立的决策树的形式类似于“如果天气怎么样,去玩;否则,怎么着怎么着”的树形分叉。那么问题是用哪个属性(即变量,如天气、温度、湿度和风力)最适合充当这颗树的根节点,在它上面没有其他节点,其他的属性都是它的后续节点。借用信息论的概念,我们用一个统计量,“信息增益”(Information Gain)来衡量一个属性区分以上数据样本的能力。信息增益量越大,这个属性作为一棵树的根节点就能使这棵树更简洁,比如说一棵树可以这么读成,如果风力弱,就去玩;风力强,再按天气、温度等分情况讨论,此时用风力作为这棵树的根节点就很有价值。如果说,风力弱,再又天气晴朗,就去玩;如果风力强,再又怎么怎么分情况讨论,这棵树相比就不够简洁了。计算信息增益的公式需要用到“熵”(Entropy)。名词越来越多,让我们通过手工计算记住它们的计算方法,把Excel打开:
1 计算熵
我们检查的属性是是否出去玩。用Excel对上面数据的play变量的各个取值排个序(这个工作簿里把“play”这个词去掉),一共是14条记录,你能数出取值为yes的记录有9个,取值为no的有5个,我们说这个样本里有9个正例,5 个负例,记为S(9+,5-),S是样本的意思(Sample)。这里熵记为Entropy(S),计算公式为:
Entropy(S)= -(9/14)*log(9/14)-(5/14)*log(5/14)
解释一下,9/14是正例的个数与总记录之比,同样5/14是负例占总记录的比例。log(.)是以2为底的对数(我们知道以e为底的对数称为自然对数,记为ln(.),lg(.)表示以10为底的对数)。在Excel里我们可以随便找一个空白的单元格,键入以下公式即得0.940:
=-(9/14)*LOG(9/14,2)-(5/14)*LOG(5/14,2)
这里LOG(9/14,2)中的“2”表示以2为底。类似地,如果你习惯用Matlab做数学运算本,公式为
-(9/14)*log2(9/14)-(5/14)*log2(5/14)
其中“2”的含义与上同。
总结:在这个例子中,我们的输出属性(我们要检查的属性)“play”只有两个取值,同样地,如果输出属性的取值大于2,公式是对成的,一样的形式,连加就是,找到各个取值的个数,求出各自的比例。如果样本具有二元输出属性,其熵的公式为
Entropy(S) =-(p+)*log(p+)-(p-)*log(p-)
其中,p+、p-分别为正例和负例占总记录的比例。输出属性取值大于2的情况,公式是对称的。
2 分别以Wind、Humidity、Outlook和Temperature作为根节点,计算其信息增益
可以数得,属性Wind中取值为Weak的记录有Normal的记录有8条,其中正例6个,负例2个;同样,取值为Strong的记录6个,正例负例个3个。我们可以计算相应的熵为:
Entropy(Weak)=-(6/8)*log(6/8)-(2/8)*log(2/8)=0.811
Entropy(Strong)=-(3/6)*log(3/6)-(3/6)*log(3/6)=1.0
现在就可以计算出相应的信息增益了:
Gain(Wind)=Entropy(S)-(8/14)*Entropy(Weak)-(6/14)*Entropy(Strong)=0.940-(8/14)*0.811-(6/14)*1.0=0.048
这个公式的奥秘在于,8/14是属性Wind取值为Weak的个数占总记录的比例,同样6/14是其取值为Strong的记录个数与总记录数之比。
同理,如果以Humidity作为根节点:
Entropy(High)=0.985 ; Entropy(Normal)=0.592
Gain(Humidity)=0.940-(7/14)*Entropy(High)-(7/14)*Entropy(Normal)=0.151
以Outlook作为根节点:
Entropy(Sunny)=0.971 ; Entropy(Overcast)=0.0 ; Entropy(Rain)=0.971
Gain(Outlook)=0.940-(5/14)*Entropy(Sunny)-(4/14)*Entropy(Overcast)-(5/14)*Entropy(Rain)=0.247
以Temperature作为根节点:
Entropy(Cool)=0.811 ; Entropy(Hot)=1.0 ; Entropy(Mild)=0.918
Gain(Temperature)=0.940-(4/14)*Entropy(Cool)-(4/14)*Entropy(Hot)-(6/14)*Entropy(Mild)=0.029
这样我们就得到了以上四个属性相应的信息增益值:
Gain(Wind)=0.048 ;Gain(Humidity)=0.151 ; Gain(Outlook)=0.247 ;Gain(Temperature)=0.029
最后按照信息增益最大的原则选Outlook为根节点。子节点重复上面的步骤。这颗树可以是这样的,它读起来就跟你认为的那样
来源:(http://blog.sina.com.cn/s/blog_5fc375650100jgxg.html) - 什么是信息增益(Information Gain)?_郑来轶_新浪博客
分享到:
相关推荐
matlab版的信息增益算法实现
分析了传统信息增益(IG)特征选择方法忽略了特征项在类间、类内分布信息的缺点,引入类内分散度、类间集中度等因素,区分与类强相关的特征;针对传统信息增益(IG)特征选择方法没有很好组合正相关特征和负相关特征...
针对肿瘤基因数据因维度高和冗余基因较多而导致分类精度低的问题,提出一种基于PCA和信息增益的肿瘤特征基因选择方法.该方法首先使用PCA算法剔除冗余基因,获得预选特征基因子集;然后利用信息增益算法对预选特征基因子...
信息增益Java代码,具体的代码实现以及数据库的链接
针对机器学习领域中的诸多优秀算法只能处理离散属性的特点,提出一种基于词出现和信息增益相结合的多区间连续属性离散化方法(multi-interval discretization based on term presence and information gain,MTPIG)...
关于决策树分类算法,其中包括对离散型和连续性属性的信息增益计算
c4.5基于信息增益比的多分类决策树python实现,包含数据集,运行结果以字典的形式进行存储
自己用Python3.6.1 写的基于信息增益的决策树,信息熵函数、信息增益函数、多数表决函数、产生决策树的函数写的都比较清楚,直接下载放在python环境中就能出结果,数据用的是周志华老师的《机器学习》的表4.3。
在机器学习中,信息增益是一种用于特征选择的常用技术。它可以帮助我们确定哪些特征对于分类任务是最有用的。在 Java 中实现信息增益的代码需要几个步骤。首先,我们需要导入必要的包和类。然后,我们需要定义数据集...
由于针对信息增益方法中未对特征碎片的词频给予足够重视,从而导致特征分布不均的问题,将特征频率应用于信息增益方法上,提出了一种基于信息增益的改进方法。实验表明,该方法有很好的可信性和鲁棒性,与同类方法...
针对人物关系抽取中的效率与准确性问题进行了研究,提出一种基于信息增益的轻量级Web人物社会关系提取方法。它通过计算初始关系元组的关系描述词的信息增益值进而确定元组上下文位置并据此创建相应的关系抽取模板,...
综合考虑多重信任关系,将分类思想应用于可信网络多维决策属性下的服务授权问题,提出一种基于动态信息增益的多维属性信任决策模型。采用信息熵描述交易样本及各决策属性对服务授权级别的不确定性程度,采用信息增益...
为准确提取特征,在信息熵与信息增益的基础上,加入词语的语义关联因素,实现融合语义信息的特征提取,进而提出语义和信息增益相结合的TFIDF改进算法,该算法弥补了统计方法丢失语义信息的弊端。实验结果表明,该...
针对数据发布中的隐私泄露问题,分析了对数据集进行匿名保护需要满足的条件,提出了一种基于信息增益比例约束的数据匿名方法。该方法以凝聚层次聚类为基本原理,将数据集中的元组划分到若干个等价群中,然后概化每个...
ID3选择具有最高信息熵增益的属性作为分裂属性
类别向导的信息增益(CIG) 在检测染毒程序时,合法程序特征是无效的。由于染毒程序是恶意 程序在现实世界中的主要存在形式,因此基于合法程序特征的恶意 程序检测方法是无法在现实世界中直接应用的。CIG可以将...
该方法在融合输入图像的细节信息时,同时考虑了输入图像的多个分解层的小波系数。实验结果表明,无论是依据均方根误差、信噪比、灰度平均误差等客观评价标准,还是视觉的主观评价,所提出的融合方法都能取得较好的...
信息增益(information gain IG) 过滤式特征选择算法
ID3 决策树、信息增益 C#源码 信息增益(information gain)是指期望信息或者信息熵的有效减少量(通常用“字节”衡量),根据它能够确定在什么样的层次上选择什么样的变量来分类。
比较了常用的CHI选择、互信息(MI)、信息增益(IG)和SVM 特征选择算法在垃圾邮件过滤中的效果,针对这些方法只排序而未消除特征间冗余的缺点,提出了利用特征词间条件概率和分类区分度消除冗余的混合邮件特征选择...