> 文章列表 > 决策树中 信息增益准则对取值较多属性有偏好的理解

决策树中 信息增益准则对取值较多属性有偏好的理解

决策树中 信息增益准则对取值较多属性有偏好的理解

背景

        学习周志华机器学习,看到了这句话 “信息增益准则对取值较多属性有偏好的理解”,但不太能理解?所以记录一下

信息熵

一个样本集合的纯度——可以用信息熵来描述,信息熵的计算是怎么样的呢?我们现在有一个样本集合D,样本分为N个种类,其中第k类样本个数占总样本的比例为 p k {p}_{k} pk,那么对于集合D来讲,它的信息熵为:
E n t ( D ) = − ∑ k = 1 N p k log ⁡ 2 p k Ent(D)=-\\sum\\limits_{k=1}^{N}{{{p}_{k}}{{\\log }_{2}}{{p}_{k}}} Ent(D)=k=1Npklog2pk

信息熵越小,纯度越高。 p k {p}_{k} pk是一个概率(比例)。在[0,1]之间,取对数就是个负值,多个负值相加在取反,最后得到的就是一个正数。当只有1类时,信息熵最小,可以算出来等于0,所以信息熵越小,纯度越高。

信息增益

信息增益表示由于特征(属性)A而使得数据集的分类不确定性减少的程度,信息增益大的特征具有更强的分类能力。怎么来计算信息增益呢?比如我想计算用属性a来对D进行划分得到的信息增益。

必须先搞清楚一些东西,才好理解。样本集合D每个样本都有M个属性,每个属性a可能取值个数为V, a a a={ a 1 {a}_{1} a1, a 2 {a}_{2} a2,…, a v {a}_{v} av},用属性a来对D进行划分得到的信息增益可以这样计算:

G a i n ( D , a ) = E n t ( D ) − ∑ v = 1 V ∣ D v ∣ ∣ D ∣ E n t ( D v ) Gain(D,a)=Ent(D)-\\sum\\limits_{v=1}^{V}{\\frac{\\left| {{D}^{v}} \\right|}{\\left| D \\right|}Ent({{D}^{v}})} Gain(D,a)=Ent(D)v=1VDDvEnt(Dv)

其中 D v {D^v} Dv代表集合D中属性a的取值是 a v {a}_{v} av的样本组成的集合,这个比例代表的就是所有样本中属性a的取值是av的样本占总样本的比例。

举个例子,我现在有一个西瓜集合(D),里面有300个样本,总共有两类(N=2),每个样本的属性集合为{色泽,纹理,敲声,根蒂},M=4,现在我打算计算用色泽来划分,色泽有{乌黑,青绿,浅白},V=3。300个样本里面150个乌黑,100个青绿,50个浅白的。

∣ D v ∣ ∣ D ∣ \\frac{\\left| {{D}^{v}} \\right|}{\\left| D \\right|} DDv的取值就分别是1/2,1/3,1/6。 E n t ( D v ) {Ent(D^v)} Ent(Dv)按上面的信息熵公式计算。

从信息增益公式可以看出来他对取值可能较多的属性有偏好,我们分析一下,上面说了 E n t ( ∗ ) {Ent(*)} Ent()是肯定大于0的,前面的比例也是一个正数,所以后面的累加项每一项都始终是正数。前面的Ent(D)是固定的,要让增益越大越好,我们考虑下极端情况,就是有一个属性,他在每个样本上的取值都不同,那么后面的累加项就全是0(因为用这个属性来分的话,每个样本就是一个种类,上面信息熵公式我们说了只有一个种类的集合的纯度最高,信息熵为0),所以信息增益准则对取值可能较多的属性有偏好。