在信息论中,熵被用来衡量一个随机变量出现的期望值。变量的不确定性越大,熵也就越大,把它搞清楚所需要的信息量也就越大,熵是整个系统的平均消息量。 信息熵是信息论中用于度量信息量的一个概念。一个系统越是有序,信息熵就越低;反之,一个系统越是混乱,信息熵就越高。所以,信息熵也可以说是系统有序化程度的一个度量。 他的计算公式是:H(x)=E[I(xi)]=E[ log(1/p(xi)) ]=-∑p(xi)log(p(xi)) (i=1,2,..n)。自信息,又称信息本体,用来衡量单一事件发生时所包含的信息量的多少。如果事件发生的机率是P(x),则信息本体I(x)的定义就是:-log(P(x))。互信息(Mutual Information)是一有用的信息度量,它是指两个事件集合之间的相关性。(PMI)
在信息增益中,衡量标准是看特征能够为分类系统带来多少信息,带来的信息越多,该特征越重要。对一个特征而言,系统有它和没它时信息量将发生变化,而前后信息量的差值就是这个特征给系统带来的信息量。所谓信息量,其实就是熵。信息增益的计算过程如下:
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为根节点。子节点重复上面的步骤。
分享到:
相关推荐
可以计算信息熵、信息熵增益、以及选取较大增益属性作为分类条件
ID3选择具有最高信息熵增益的属性作为分裂属性
决策树的熵和信息增益的计算熵是由随机数据源产生信息的平均速率,或者说,它是与随机变量相关的不确定性的度量。 信息增益是通过观察另一个随机变量获得的有关随机变量或信号的信息量。 该项目包括以下内容读取CSV...
基于信息熵计算属性的信息增益,最终得到约简后的属性集,实现特征选择
在机器学习中,信息增益是一种用于特征选择的常用技术。它可以帮助我们确定哪些特征对于分类任务是最有用的。在 Java 中实现信息增益的代码需要几个步骤。首先,我们需要导入必要的包和类。然后,我们需要定义数据集...
自己用Python3.6.1 写的基于信息增益的决策树,信息熵函数、信息增益函数、多数表决函数、产生决策树的函数写的都比较清楚,直接下载放在python环境中就能出结果,数据用的是周志华老师的《机器学习》的表4.3。
针对现有多变量决策树训练时间高的问题,提出了基于信息熵和几何轮廓相似度的多变量决策树(IEMDT)。该算法利用几何轮廓相似度函数的一对一映射特性,将n维空间样本点投影到一维空间的数轴上,进而形成有序的投影点...
采用信息熵描述交易样本及各决策属性对服务授权级别的不确定性程度,采用信息增益描述决策属性的信息量。基于信息增益设置各决策属性权值。使用滑动窗口机制对各属性信息增益和权值动态调节。算法分析表明,所提出的...
为准确提取特征,在信息熵与信息增益的基础上,加入词语的语义关联因素,实现融合语义信息的特征提取,进而提出语义和信息增益相结合的TFIDF改进算法,该算法弥补了统计方法丢失语义信息的弊端。实验结果表明,该...
利用信息熵理论,将高光谱遥感影像的各波段抽象为具有相关性的独立个体,设计了高光谱遥感影像的决策表矩阵,进而计算各波段的信息熵,量化各波段的信息量,从而将各波段根据信息增益进行排序。用户可根据高光谱遥感...
ID3 决策树、信息增益 C#源码 信息增益(information gain)是指期望信息或者信息熵的有效减少量(通常用“字节”衡量),根据它能够确定在什么样的层次上选择什么样的变量来分类。
提供了几个带有基本图像的示例来解释信息熵的工作原理。 包括熵阈值、熵过滤和点信息增益。 作为信息熵一章的补充材料。
本文实例讲述了Python决策树之基于信息增益的特征选择。分享给大家供大家参考,具体如下: 基于信息增益的特征选取是一种广泛使用在决策树(decision tree)分类算法中用到的特征选取。该特征选择的方法是通过计算每个...
我们提出了一种基于信息增益的时间分割方法(IGTS),这是一种无监督的分割技术,旨在从异构传感器数据中查找人类活动和日常活动中的转换时间。 提议的IGTS方法适用于低级别活动,其中每个部分都捕获了将被识别或...
接着针对最小熵准则的不足,提出了新的中心误差熵准则,它是由信息势和互熵的加权求和构成的,最大化信息势以实现估计误差随机性的全局最小化,最大化互熵可以将误差概率密度函数的峰值固定到零,从而实现滤波误差尽可能...
让Attr是集中的所有属性和Ex的集合的所有训练样例, value(x, a)与x中Ex定义了一个特定实施例的值x为属性a在Attr , H指定熵。 values(a)函数表示Attr中属性a的所有可能值的集合。 Attr的属性a的信息增益定义如下:...
使用python语言,实现求特征选择的信息增益,可以同时满足特征中有连续型和二值离散型属性的情况。 师兄让我做一个特征选择的代码,我在网上找了一下,大部分都是用来求离散型属性的信息益益,但是我的数据是同时...
我们提出了一种基于信息增益的时间分割方法(IGTS),这是一种无监督的分割技术,旨在从异构传感器数据中查找人类活动和日常活动中的转换时间。 提议的IGTS方法适用于低级别活动,其中每个部分都捕获了将被识别或...
对于numeric类型的数据,基本贝叶斯分类算法并不能直接应用。对于需要分类的数据,首先按照信息熵进行离散化后。之后对于处理过后的数据,使用基本贝叶斯分类算法进行训练和分类。
原文地址 目录 1. 信息量 2. 信息熵 3. 相对熵(KL散度/KL divergence) 4. 交叉熵 5. 几个熵之间的关系 6. JS散度 7. Wasserstein距离 ...相对熵又叫KL散度,也叫做信息增益,如果我们对于同一个随机变量X,有两个