c4.5为什么使用信息增益比来选择特征?

论坛 期权论坛 期权     
宋伟   2018-10-15 23:09   4166   8
ID3使用信息增益,c4.5使用信息增益比,我在网上找到的说法是信息增益的缺点是比较偏向选择取值多的属性,这句话怎么理解,取值越多会导致信息增益越大?
分享到 :
0 人收藏

8 个回复

倒序浏览
2#
夕小瑶  4级常客 | 2018-10-15 23:09:07 发帖IP地址来自
感觉都没有解释到点子呀。。这个问题下的回答基本上都在说极限情况下怎么怎么样,那么非极限情况呢?C4.5的特征选择策略在非极限情况下也是优于ID3吗?
来来来,上点干货啦~数学不好的童鞋直接拉到底部看结论,觉得不错别忘赞( ̄ ̄)
借着复习,刚自己乱推导了一下。首先假如数据集有200K个样本,并且包含俩类别,类别先验服从均匀分布(每个类别100K个样本)。然后我们拿过来俩特征,一个特征A包含10K个取值,另一个特征B包含2个取值。这俩特征都是跟类别毫无相关性的特征(所以当然是两个相同强度的特征),也就是说,这俩特征不管取什么值,都不会改变数据集的类别分布,所以画个表格:

显然这时对于每个特征的每个取值,数据集的类别分布依然是均匀分布,那么这时根据条件熵计算公式可以算出特征A的条件熵为


而特征B的条件熵为


显然这样信息增益G(A)=G(B),也就是说ID3决策树并没有偏向于取值多的特征A哇。
然而不要忘了,这里其实隐藏了一个坑:在计算特征的每个取值下的熵的时候(即计算
时),需要估计每个类别k的概率!显然我们是直接用频率去近似的概率。
然而根据大数定律,只有当样本数足够多的时候,频率才可以准确的近似概率。也就是说,样本数越少,对概率的估计结果的方差就会越大(想象一下做抛硬币实验来近似正面向上的概率,如果只抛两次,那么得到的正面向上的概率可能会非常离谱。而如果抛1万次,不论何时何地几乎总能得到近似0.5的概率)。而方差大会导致什么结果呢?显然就会导致该取值下的类别错估计为非均匀分布呀!而非均匀分布,不就是说导致该取值下的熵更小了嘛。反应慢的同学可以试着在上面的例子里,将特征A的每个取值下的每个类别的样本数随机加几个样本减几个样本,在特征B的每个取值下也是这样做,然后再算一下A和B的条件熵(显然A的条件熵会显著降低,而B几乎不受影响)。
所以说,ID3决策树,或者说信息增益,或者说条件熵,并不是说一定会偏向于取值多的特征,而是数据集的不充足以及客观存在的大数定律导致取值多的特征在计算条件熵时容易估计出偏小的条件熵。如果数据集足够大,均分到某特征的每个取值的样本足够多,那么这时信息增益是没有偏向性的。比如还是上面的例子,你要是把特征A改成20个取值,那么这时对于A的每个取值下还是有很多样本的,这时你会发现虽然A的取值数量是B的10倍,但是它俩算出来的条件熵并没有明显差别(除非你特别夸张的加噪声)。
当然,可能有人会问,那么对于类别的先验分布非均匀的情况是不是也成立呢?(比如先验分布是类别0占1/3,类别1占2/3)好像一想,这样的话加了噪声后有可能让特征A的一些取值变得更趋向于均匀分布呀,那么鬼知道这些噪声总体上会让类别分布变得更均匀还是更不均匀呀。。。其实这个问题也很简单——对于一个凸函数来说(或者在有效区间上是凸的),任意两个不相等的点x1,x2的中值处的函数值一定小于两点函数值的均值(即
)(懵逼了的同学自己画一下标准二次函数曲线,哦对了,不要说标准二次函数是凹函数哈,数学界习惯于规定下凸为凸,上凸为凹,吐槽一下某流行的本科教材)。这跟我们要讨论的问题有什么关系呢?因为我们可以假设噪声为白噪声呀,所以可以看作每个特征的取值下一个类别少了几个样本,就期望另一个类别多几个样本。即
,而特征B特征数少,所以近似为
所以说,如果函数f是凸的,显然
,所以有
。显然我们在刚才的均匀分布特例里看到实际上有
,所以f不可能是凸的。那么f是完全凹函数还是仅仅部分凹呢?有兴趣的同学对f求导一下吧~公式敲吐了,不贴上来啦(感觉看到这里还能保持清醒的同学没多少吧╮( ̄▽ ̄"")╭
最后总结一下:
ID3决策树的信息增益有偏向性的前提是某个特征的每个取值下的样本数非常少,因此其他回答里说的取极限时的讨论仅仅是个极度不满足大数定律的特例而已。当数据集非常大,或者说那些取值多的特征并没有多到很夸张时,信息增益并没有多大偏向性。
至于C4.5的修正方案是不是真的客观的恰到好处的和谐掉ID3的偏向性那就是另一篇文章啦。
3#
weizier  4级常客 | 2018-10-15 23:09:08 发帖IP地址来自
回到公式本身来吧

当极限情况下A将每一个样本都分到一个节点当中去的时候,后面的括号部分为0.也就是条件熵部分为0,而条件熵的最小值为0,这意味着该情况下的信息增益达到了最大值,故ID3算法一定会选择特征A。然而,我们知道这个特征A显然不是最佳选择。
4#
方圆七里  1级新秀 | 2018-10-15 23:09:09 发帖IP地址来自
我觉得题主的问题是在问取值越多是否就一定会导致信息增益越大?这个是不一定的,楼上举的例子比较极端,我再举个例子:

Humidity的值有两种,High和Normal,Temperature的值有三种,Hot、Mild和Cool,而Day的值多达14种,如果按照信息增益的公式来算:

对于PlayTennis,各个属性的信息增益值:

可以看出Temperature所带来的信息增益不如Humidity,也就是说取值越多不一定会导致信息增益越大。


参考文献: 《Machine Learning》  Tom M. Mitchell
5#
xiao ma  3级会员 | 2018-10-15 23:09:11 发帖IP地址来自
对于多值特征(极端情况下,unique id)这时候按照信息增益切分各部分都是纯的 熵最小 是0 ,但是这种切分没有意义
6#
张和永  1级新秀 | 2018-10-15 23:09:12 发帖IP地址来自
采取信息增益方式,若某属性取值数目远大于类别数量时信息增益可以变得很大,对训练集地分割尽管不错,但泛化能力同时也会变差。这种分割方式导致在每个分割空间内数据较纯净,甚至能使熵为0,但未利用其它实际上可能更加有效的分类信息。信息增益比引入了分裂信息,取值数目多的属性分裂信息也会变大,将增益除以分裂信息,再加上一些额外操作,可以有效控制信息增益过大的问题。
7#
李磊  4级常客 | 2018-10-15 23:09:13 发帖IP地址来自
最近在上这方面的课程,简单说下我自己的理解吧!
觉得内容太多,可以直接看最后面部分。
首先分析一下熵和决策树中的纯的关系
  • 熵的理解
  • 熵反映的是系统的不确定性,举个简单的例子,总共有十个样本:
(1). 正负各5个


(2).正样本9个,负样本1个


我们可以看出明显(2)的样本集的熵小,我自己的理解是如果从(1)的样本集中随机取出一个样本,有可能为正(50%),也很有可能为负(50%),但从(2)中随机取一个样本,很大概率(90%)为正的,更稳定些。
  • 那么为何要用熵作为决策树的节点选择的重要依据呢?
决策树实际上就机器学习的一个算法,任何算法最关键的是算得快(time cost)和占空间少(memory cost)。
2. 算得快及占空间少
现在先看看这个例子,属性为有钱(0或1)和帅不帅(0或者1), 分类为嫁还是不嫁(0或1)。
我们考虑一下可能出现的数据有哪些:

表1. 所有可能出现的数据,红色为噪声数据,出现次数极少,大部分的数据为黑色的模式,蓝色可能发生,并且出现了产生争端的数据。(虽然没有收集过此方面的数据,但是一般情况下,两个属性的二分类通常都会出现这种情形的数据分布)此时,考虑所有的情形,以帅或者有钱作为初始节点的树的结构为:



考虑到出现矛盾的情况,根据数据出现的次数,删掉出现次数极少的情形(001,110,见表1),得到以帅或者有钱作为初始节点的树的结构:



对于(011,010;101,100,见表1)可能出现冲突的请况,根据出现次数多少进行删减(提高accuracy),不妨假设011的次数多于010, 100的次数多于101(其他情况的分析也一样的), 以帅或者有钱作为初始节点的决策树结构:



此时,从计算时间和储存空间来看,无论用有钱作为初始节点还是帅作为初始节点,都一样。
但考虑到当
(1).属性大于2
(2).收集的数据不够
(3).(010,011)这种模式根本不存在
的时候,会出现以下的情形:
数据只有:

表2在这种情况下,很显然,用有钱作为初始节点更好,通过有钱直接可以判断嫁不嫁,而如果把帅作为初始节点,如果不帅,还要考虑是否有钱。

以及


左右一致显然下面的模型计算量少,存储空间少,以有钱作为初始节点优于帅作为初始节点。


3. 熵和纯
现在我们从熵的角度和纯的角度来分析这个模型:


(1). 熵




那么,




用钱作为初始node,信息增益大于用帅作为初始node。


(2). 纯


以帅作为初始节点,其帅节点下面只有嫁,而不帅的节点下有嫁和不嫁两种情况。
以有钱作为初始节点,其有钱节点下只有嫁,没钱节点下只有不嫁。
总体而言
以有钱为初始节点,"纯"高或者说该节点(有钱)的子节点(有或没)只出现以一种情况(也就是纯净,单一);
以帅作为初始节点,"纯"低或者说该节点(帅)的子节点(帅不帅)出现(混合)多种情况(也就是不纯,混合)。


4. 整体分析
(1). 表2可以作为一个很有代表性的例子。正常情况下,属性数目多,数据量较少时,数据不可能涵盖所有的情形(
)。而且当出现冲突数据时,为保证精度,往往删掉出现次数少的数据。
(2). 从纯度而言,纯度越高,越快得到出分类结果,模型越浅,计算速度快,时间消耗少(见2)。当条件概率
确定之后,为了保证纯度,数据越少,纯度越高(见3)。
(3). 从熵而言,熵低,模型稳定,体现在分布上就是分布不均匀(见1)。
      此处利用1的例子说明,分布越不均匀(比如1/10和9/10),那么会得到数据量很少的一个分类(1/9),从数量上来说,数量少(1/9)往往纯度(干净程度)可能更低。而当数据达到一定程度(9/10和1/2)后,纯度不变。


结论:任何算法的分析都离不开Performance,Time Cost和Memory Cost。此处不考虑过拟合等问题,分析最基础的决策树算法。其实信息增益算法的核心是熵越低=>分布不均匀=>某些分类数据量少=> 出现不同类的少=>纯度高=>计算时间少。
建议读完上面部分再看
回答:
信息增益率的引进则是解决内存空间大小,如果出现这种情形

信息增益算法会倾向于先将Day作为初始节点,因为该分类下每类的数据量少,而且都只有一类(Y或者N),纯度高。然而得到的图结构就是:

整个树结构十分庞大,虽然也很浅,计算速度快,但是占内存空间大,才引入信息增益率这个概念。

8#
吴祺育  3级会员 | 2018-10-15 23:09:14 发帖IP地址来自
如果出现ID(就比如是姓名),你用信息增益划分,每一个名字都是一个类,所以才用到C4.5
9#
薄冰  2级吧友 | 2018-10-15 23:09:15 发帖IP地址来自
都说的很好,但是看完了 我还是不理解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP