我们为什么需要信息增益比,而不是信息增益?

我们为什么需要信息增益比,而不是信息增益?

                     表一 满足什么情况才去玩高尔夫 [1]
DayTemperatrueOutlookHumidityWindyPlayGolf?
07-05hotsunnyhighfalseno
07-06hotsunnyhightrueno
07-07hotovercasthighfalseyes
07-09coolrainnormalfalseyes
07-10coolovercastnormaltrueyes
07-12mildsunnyhighfalseno
07-14coolsunnynormalfalseyes
07-15mildrainnormalfalseyes
07-20mildsunnynormaltrueyes
07-21mildovercasthightrueyes
07-22hotovercastnormalfalseyes
07-23mildsunnyhightrueno
07-26coolsunnynormaltrueno
07-30mildsunnyhighfalseyes

决策树是机器学习中的经典算法,分别由三个经典算法实现: ID3C4.5CART ,这三个算法最明显的区别就是对于特征选择的策略不同,不过目的只有一个:使当前数据集的混乱程度降低。具体来说, ID3 使用的信息增益, C4.5 使用的信息增益比 CART 使用的 Gini 指数(基尼指数)

对于 ID3 C4.5 的信息增益和信息增益比有什么区别呢,为什么放着信息增益不用,又要计算一个 gainratio 呢?这就是下面的内容要讨论的。

讨论之前先来几个公式压压惊。

在信息论与概率统计中,熵(entropy)是表示随机变量不确定性的度量[2]。设X的概率分布为

P(X=Xi)=pi,i=1,2,...,n

则随机变量 X 的熵定义为
H(X)=i=1npilogpi

其实公式看起来挺吓人的,但是计算的时候很简单。拿表一作为计算的例子,假设

p1=Num(no)/(Num(no)+Num(yes))
,
p2=Num(yes)/(Num(no)+Num(yes))
那么
H(D)=514log514914log914=0.9403

条件熵定义为

H(D|A)=i=1npiH(Y|A=ai)

条件熵在这里指的就是特征 A 对训练数据集D经验条件熵,再举一个例子,假如把Outlook作为分隔样本的特征的话,那么

E(Outlook=sunny)=25log2535log35=0.971
E(Outlook=overcast)=1log10log0=0
E(Outlook=rainy)=35log3525log25=0.971

所以

H(D|A)=5140.971+4140+5140.971=0.693

得到了熵和条件熵,那么信息增益就好求了,公式如下

g(D,A)=H(D)H(D|A)

所以, g(D,Outlook)=0.94030.693 ,以此类推,可以求得 g(D,Temperatrue) g(D,Humidity) g(D,Windy) ,信息增益越大说明该特征对于减少样本的不确定性程度的能力越大,也就代表这个特征越好。这种选择特征的思路就是ID3算法选择特征的核心思想。

本来 ID3 算法计算信息增益好好的,但是 C4.5 一定要计算信息增益比( gainratio )这是为什么呢?
还是以表一为例,假如我们想用Day来做为特征(当然实际上一般人也不会傻到用Day用做特征),显然,每一天都可以将样本分开,也就是形成了一颗叶子数量为14,深度只有两层的树。这种样本分隔的结果就是计算出来的 H(D|Day)=0 ,那么 g(D,Day)=0.9403 , 这特征可真是够“好”的!不过显然这种特征对于样本的分隔没有任何意义。类似的情况还有人们的身份证号、信用卡号、学号等等特征。
那么导致这样的偏差的原因是什么呢?从上面的例子应该能够感受出来,原因就是该特征可以选取的值过多。解决办法自然就想到了如何能够对树分支过多的情况进行惩罚,这样就引入了下面的公式,属性 A 的内部信息(Intrinsic Information of an Attribute):

IntI(D,A)=i|Di||D|log(|Di||D|)
这样对于天气来说 IntI(Day)=14(114log(114))=3.807
这就是针对分支数目的惩罚项,
这样信息增益比公式就出来了:

gr(D|A)=g(D)g(D|A)IntI(D,A)

总结上面的公式,计算得到下表:

OutLookTemperatrue
Gain:0.940-0.693 = 0.247Gain:0.940-0.911 = 0.029
Gain ratio: 0.245/1.577 = 0.157Gain ratio:0.029/1.557 = 0.019
HumidityWindy
Gain:0.940-0.788 = 0.152Gain:0.940-0.911 = 0.029
Gain ratio: 0.152/1.000 = 0.152Gain ratio:0.048/0.985 = 0.049
Day
Gain ratio:0.940/3.807 = 0.246

然而。。。最终还是 Day 的特征优势最大。。。Orz
不过虽然这样,信息增益率还是要比信息增益可靠的多的!另外也可以看出,对特征的筛选也是非常重要的步骤,可以减少信息增益率失效的几率。

[1] http://www.ke.tu-darmstadt.de/lehre/archiv/ws0809/mldm/dt.pdf
[2] 李航. 统计学习方法.

  • 21
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值