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

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

                     表一 满足什么情况才去玩高尔夫 [1]
Day Temperatrue Outlook Humidity Windy PlayGolf?
07-05 hot sunny high false no
07-06 hot sunny high true no
07-07 hot overcast high false yes
07-09 cool rain normal false yes
07-10 cool overcast normal true yes
07-12 mild sunny high false no
07-14 cool sunny normal false yes
07-15 mild rain normal false yes
07-20 mild sunny normal true yes
07-21 mild overcast high true yes
07-22 hot overcast normal false yes
07-23 mild sunny high true no
07-26 cool sunny normal true no
07-30 mild sunny high false yes


决策树是机器学习中的经典算法,分别由三个经典算法实现:ID3,C4.5,CART,这三个算法最明显的区别就是对于特征选择的策略不同,不过目的只有一个:使当前数据集的混乱程度降低。具体来说,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)=?514log514?914log914=0.9403

条件熵定义为

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

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

E(Outlook=sunny)=?25log25?35log35=0.971

E(Outlook=overcast)=?1log1?0log0=0

E(Outlook=rainy)=?35log35?25log25=0.971

所以

H(D|A)=514?0.971+414?0+514?0.971=0.693

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

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

所以,g(D,Outlook)=0.9403?0.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?(?114?log(114))=3.807

这就是针对分支数目的惩罚项,

这样信息增益比公式就出来了:

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

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

OutLook Temperatrue
Gain:0.940-0.693 = 0.247 Gain:0.940-0.911 = 0.029
Gain ratio: 0.245/1.577 = 0.157 Gain ratio:0.029/1.557 = 0.019
Humidity Windy
Gain:0.940-0.788 = 0.152 Gain:0.940-0.911 = 0.029
Gain ratio: 0.152/1.000 = 0.152 Gain 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] 李航. 统计学习方法.

时间: 2024-10-10 21:54:03

我们为什么需要信息增益比,而不是信息增益?的相关文章

决策树之C4.5算法学习

决策树<Decision Tree>是一种预测模型,它由决策节点,分支和叶节点三个部分组成.决策节点代表一个样本测试,通常代表待分类样本的某个属性,在该属性上的不同测试结果代表一个分支:分支表示某个决策节点的不同取值.每个叶节点代表一种可能的分类结果. 使用训练集对决策树算法进行训练,得到一个决策树模型,利用模型对未知样本(类别未知)的类别判断时,从决策树根节点开始,从上到下搜索,直到沿某分支到达叶节点,叶节点的类别标签就是该未知样本的类别. 网上有个例子可以很形象的说明利用决策树决策的过程(

一条SQL搞定信息增益的计算

欢迎大家关注腾讯云技术社区-博客园官方主页,我们将持续在博客园为大家推荐技术精品文章哦~ 周东谕,2011年加入腾讯,现任职于腾讯互娱运营部数据中心,主要从事游戏相关的数据分析和挖掘工作. 信息增益原理介绍 介绍信息增益之前,首先需要介绍一下熵的概念,这是一个物理学概念,表示"一个系统的混乱程度".系统的不确定性越高,熵就越大.假设集合中的变量X={x1,x2-xn},它对应在集合的概率分别是P={p1,p2-pn}.那么这个集合的熵表示为: 举一个的例子:对游戏活跃用户进行分层,分为

文本数据的机器学习自动分类方法(转)

http://blog.csdn.net/jdbc/article/details/50586042 本文为第一部分,着重介绍文本预处理以及特征抽取的方法. 随着互联网技术的迅速发展与普及,如何对浩如烟海的数据进行分类.组织和管理,已经成为一个具有重要用途的研究课题.而在这些数据中,文本数据又是数量最大的一类."文本分类是指在给定分类体系下,根据文本内容自动确定文本类别的过程"(达观数据科技联合创始人,张健).文本分类有着广泛的应用场景,例如: 新闻网站包含大量报道文章,基于文章内容,

【转载】决策树Decision Tree学习

本文转自:http://www.cnblogs.com/v-July-v/archive/2012/05/17/2539023.html 最近在研究规则引擎,需要学习决策树.决策表等算法.发现篇好文对我这个初学者很有指导价值,先转再细品. 1. 什么是决策树 咱们直接切入正题.所谓决策树,顾名思义,是一种树,一种依托于策略抉择而建立起来的树. 机器学习中,决策树是一个预测模型:他代表的是对象属性与对象值之间的一种映射关系.树中每个节点表示某个对象,而每个分叉路径则代表的某个可能的属性值,而每个叶

监督式学习 -- 分类决策树(一)

决策树(decision tree)是一种基本的分类与回归方法. 其表示的树型结构,能够觉得是if-else规则的集合.基本的长处是分类可读性好,速度快. 一般会有三个步骤:特征选择.决策树的生成和决策树的修剪. 决策树由结点(node)和有向边(directed edge)组成.结点有两类:内部结点(表示一个特征或者属性)和叶节点(表示一个类或者决策结果).决策树学习样本集,学习的目标是依据给定的训练数据集构建决策树模型.可以对測试集以及实例进行正确的分类.通常默认.训练集和測试集拥有同样或近

决策树(decision tree)吧啦吧啦

#小魔仙 ?#参考:美Brett Lantz的<机器学习与R语言>,周志华老师的<机器学习> #仅供个人学习用 #比较长和啰嗦,提醒自己:最好使用电脑看,手机看长篇大论总是不太合适 ? 这两天学R与机器学习,真心赶脚R太简单化了,转到吴恩达老师的课时,又觉得脑子转不过来,基础没打好.关于决策树,首先是 决策树理论和流程: 决策树是一个树形结构的模型,使用地规划分的探索法,因为它利用特征的值将数据分解成具有相似类的较小的子集,因此通常被称为分而治之. 决策树就是对样本的特征进行一个一

决策树一

决策树是一种对样本进行划分的机器学习算法,其要点在于最优特征的选取,决策树生成与剪枝,决策树的生成是个递归过程,其中有三种情况会导致递归返回: ①当前节点所属样本属于同一类而不需要划分: ②所有样本在所有属性上取值相同而不能划分: ③当前没有所属样本 对于属性的选取主要有三种方法: 一. 基于信息增益的选取划分方法,对应于ID3决策树学习算法 信息熵的定义如下: \[H(X) = - \sum\limits_{i = 1}^n {{p_i}} \times {\log _2}{p_i}\] 其中

从决策树学习谈到贝叶斯分类算法、EM、HMM

从决策树学习谈到贝叶斯分类算法.EM.HMM 引言 近期在面试中,除了基础 &  算法 & 项目之外,经常被问到或被要求介绍和描写叙述下自己所知道的几种分类或聚类算法(当然,这全然不代表你将来的面试中会遇到此类问题,仅仅是由于我的简历上写了句:熟悉常见的聚类 & 分类算法而已),而我向来恨对一个东西仅仅知其皮毛而不得深入,故写一个有关数据挖掘十大算法的系列文章以作为自己备试之用,甚至以备将来经常回想思考.行文杂乱,但侥幸若能对读者起到一点帮助,则幸甚至哉. 本文借鉴和參考了两本书,

第三章:决策树

本章内容□ 决策树简介□ 在数据集中度量一致性□ 使用递归构造决策树□ 使用matplotlib绘制树形图 我们经常使用决策树处理分类问题近来的调查表明决策树也是最经常使用的数据挖掘算法.它之所以如此流行,一个很重要的原因就是使用者基本上不用了解机器学习算法,也不用深究它是如何工作的. 第2章介绍的k-近邻算法可以完成很多分类任务,但是它最大的缺点就是无法给出数据的内在含义,决策树的主要优势就在于数据形式非常容易理解. 现在我们已经大致了解了决策树可以完成哪些任务,接下来我们将学习如何从一堆原始