在信息论中,熵被用来衡量一个随机变量出现的期望值。变量的不确定性越大,熵也就越大,把它搞清楚所需要的信息量也就越大,熵是整个系统的平均消息量。 信息熵是信息论中用于度量信息量的一个概念。一个系统越是有序,信息熵就越低;反之,一个系统越是混乱,信息熵就越高。所以,信息熵也可以说是系统有序化程度的一个度量。 他的计算公式是: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算法选择具有最高信息熵增益的属性作为分裂属性 ID3算法是基于决策树的分类算法之一,该算法的核心思想是选择具有最高信息熵增益的属性作为分裂属性,从而将数据集分割成更小的子集,以便更好地分类...
2. 信息增益与熵: - 熵是衡量数据集中纯度的一个指标。对于一个属性,如果其所有实例都属于同一类别,那么熵为0,表示非常纯净;反之,如果各实例均匀分布在多个类别中,熵较大,表示数据集较混乱。 - 计算熵的...
4. 信息增益与熵 熵是衡量数据集纯度的指标,熵越小,数据集的纯度越高。信息增益是选择分裂属性时的度量标准,它反映了通过某个属性划分数据集后熵的减少程度。在ID3算法中,选择信息增益最高的属性作为分裂节点,...
信息熵是信息理论中的一个...总的来说,掌握信息熵的概念及其计算方法对于理解和解决与信息处理相关的各种问题至关重要。这个压缩包提供了实践操作的机会,可以帮助你加深对信息熵的理解,并将其运用到实际项目中去。
在本压缩包中,包含了与信息熵相关的算法代码,这将有助于我们更深入地理解这一概念。 信息熵是一个统计学概念,通常用以表示一个随机变量的不确定性。在数据挖掘中,我们常常使用信息熵来评估分类问题的复杂性。...
#### 四、信息增益与熵 信息增益是衡量特征重要性的关键指标之一。它基于信息论中的熵概念,用来量化在给定数据集上某个特征的信息价值。熵定义为: \[ H(S) = -\sum_{c \in C} p(c) \log_2 p(c) \] 其中 \( S \) 是...
#### 三、信息增益与熵的概念 **信息增益**是衡量一个属性分割数据集能力的标准之一。它是熵减少的程度,熵是用来度量不确定性或混乱程度的一个指标。 - **熵**: 定义为数据集D的熵E(D) = -∑_i p_i * log2(p_i),...
本资料包“SFG.rar”重点介绍了信息增益、属性约简以及特征选择的概念和应用,尤其关注了信息熵在这些过程中的作用。下面我们将深入探讨这些知识点。 首先,我们来理解“信息增益”。信息增益是决策树算法中常用的...
基于关联信息熵度量的特征选择方法是一种有效的策略,它利用信息理论的概念来评估每个特征与目标变量之间的关系强度。 信息熵是一种衡量数据不确定性的度量,它在信息论中被广泛使用。在特征选择中,信息熵可以帮助...
信息增益比(Information Gain Ratio)是C4.5选择特征的一种标准,它是信息增益与特征纯度度量的比值。信息增益衡量了划分数据集后减少的不确定性,但可能偏向于选择具有更多值的特征。为了解决这个问题,C4.5引入了...
信息增益通常是1减去对应因素的信息熵,即Wi = 1 - Ei。较大的信息增益意味着该因素具有更高的重要性。 4. **归一化权重**:为了得到可比较的权重,需要对所有因素的信息增益进行归一化处理,使其总和为1。 5. **...
接着,引入信息增益概念,即原始熵值与划分后熵值的差,用于衡量节点划分的效果。在构建决策树时,选择信息增益最大的节点作为根节点,以提高分类效果。通过比较不同候选节点的信息增益,最终确定根节点为overlook。...
3. **信息熵与信息增益**: - **信息熵**:衡量数据集纯度的指标,信息熵越大,数据集的不确定性越高。计算公式为`H(D) = -∑(p_i * log2(p_i))`,其中`p_i`是第i个类别的概率。 - **信息增益**:选择某个属性作为...
决策树的熵和信息增益的计算熵是由随机数据源产生信息的平均速率,或者说,它是与随机变量相关的不确定性的度量。 信息增益是通过观察另一个随机变量获得的有关随机变量或信号的信息量。 该项目包括以下内容读取CSV...
5. **比较与其他方法**:可能还会讨论其他特征选择方法,如基尼指数、卡方检验等,对比它们与信息增益率的优缺点。 6. **实验结果与分析**:展示使用信息增益率进行特征选择后的模型性能,比如准确率、召回率、F1...
"基于信息增益与CHI卡方统计的情感文本特征选择" 基于信息增益与CHI卡方统计的情感文本特征选择是文本挖掘中的一种重要技术,用于选择有价值的情感文本特征,以提高文本分类的准确性。本文中,我们将讨论基于信息...
信息增益是通过比较父节点的熵与所有可能子节点的加权平均熵之差来计算的。信息增益大的特征意味着划分后数据集的纯度提升得更多,因此更优先考虑。 Python 是实现决策树算法的常用语言,它提供了如scikit-learn...
2. **信息增益(Information Gain)**:信息增益是父节点的熵与所有子节点熵的加权平均值之差,用于衡量选择某个特征后数据集纯度的提升。信息增益计算公式为:`IG(D, A) = H(D) - H(D|A)`,其中`H(D)`是原始数据集...
在机器学习中,信息增益是一种用于特征选择的常用技术。它可以帮助我们确定哪些特征对于分类任务是最有用的。在 Java 中实现信息增益的代码需要几个步骤。首先,我们需要导入必要的包和类。然后,我们需要定义数据集...