百科问答小站 logo
百科问答小站 font logo



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

  

user avatar   civ-26 网友的相关建议: 
      

重要的事情先说三遍:

C4.5在评估节点划分的优劣时,不仅仅只使用信息增益,会同时使用信息增益和信息增益率

C4.5在评估节点划分的优劣时,不仅仅只使用信息增益,会同时使用信息增益和信息增益率

C4.5在评估节点划分的优劣时,不仅仅只使用信息增益,会同时使用信息增益和信息增益率

C4.5寻找最优划分的真实方法是:1)计算所有划分的平均信息增益t;2)从所有信息增益大于t的划分中寻找信息增益率最大的划分,该划分就是最优划分。

那位同学晒出的那本原著中写的非常清楚。

下面简单分析一下。

(贴上我另一问题的回答部分内容)

首先分析一下信息增益有什么问题。很多文章会说:信息增益会偏向于变量取值更多的离散特征。不管其对错,先看如下信息熵的公式:

假设我们有数据集D,它包含12个样本,其中有6个正样本和6个负样本。再假设两种划分,第一种划分使用特征a把数据集D划分成了两份:

D1,Pos 4 : Neg 2 (4个正样本,2个负样本)

D2,Pos 2 : Neg 4(2个正样本,4个负样本)

容易计算,数据集D1和D2的信息熵都为:

(1)

所以它们的加权熵也等于(1)式。

再来看第二种划分,使用特征b把数据集D划分成了四份

D1,Pos 2 : Neg 1 (2个正样本,1个负样本)

D2,Pos 2 : Neg 1(2个正样本,1个负样本)

D3,Pos 1 : Neg 2 (1个正样本,2个负样本)

D4,Pos 1 : Neg 2(1个正样本,2个负样本)

容易计算,这四个数据集的加权熵也等于(1)式。所以用特征a和用特征b对数据集划分得到的信息熵是一致的,这也符合我们的直觉,因为它们划分出来的结果差不多。我们看到,这样一个简单的例子其实说明“信息增益会偏向于变量取值更多的离散特征”这个结论是靠不住的,一个反例足以。那么信息增益真正的问题在哪?

继续上面的例子。刚才说了,从直觉上,用特征a对数据集划分得到的结果与用特征b对数据集进行划分得到的结果是差不多的。但从机器学习的角度来看,此时特征a的划分可能更好。原因是b迅速地将样本空间划分的过小了,从而增加了过拟合的风险。例如,我们要估计落入每个节点的正样本的真实比例(真实分布,非数据经验分布),此时我们可以用训练时数据在节点上的分布来作估计值。用特征a的划分,在D1上它的估计值是2/3;用特征b的划分,在D1上它的估计值也是2/3。但区别在于特征a的划分用了6个样本在估计,而特征b的划分只用了3个样本。所以用特征a的划分进行估计时可能更加准确。

综上所述,当面临差不多的两种划分时,我们应该要避免选择划分分支更多的那一种,因为它会将样本空间划分的更小,从而会导致在其中的统计量的可靠性变差。而信息增益在面临此种选择时,不会偏向任何一方。

所以C4.5提出了信息增益率。上面如果读懂了,此时就应该非常容易猜到信息增益率设计的动机是什么。既然要让指标偏向于划分少的,而信息增益本身并不能办到这一点,那么可以设计出一个factor,让信息增益去乘以这个factor,并且划分越多,这个factor要越小。

于是C4.5中的split info就出现了,它完全满足这样的要求(实际是它的倒数)。例如,上面的例子中,用特征a划分得到的split info为-log(0.5),而特征b划分得到的split info为-log(0.25)。后者显然大于前者,这就达到了让指标倾向于划分结果少的划分的目的。

通过上述分析,可以看出信息增益仍然是更加直接的评价指标,它能直接评估一次分裂是否能够将数据划分的更加纯净。而信息增益仅仅是一个“相对”指标。C4.5与ID3的最大区别在于,ID3仅仅追求每次节点划分能够带来最大的“收益”,而C4.5算法强调的是在保证足够收益的情况下,寻求最大“收益代价比”(将split info看作代价)。




  

相关话题

  目前强化学习在控制领域的应用有哪些? 
  自监督学习(Self-supervised Learning)有什么比较新的思路? 
  如何看待比 iPad 还大的史上最大芯片问世? 功耗比电磁炉还高有什么用? 
  如何评价B站UP主未明子宣称“知乎搞机器学习模拟拉康的程序员”具备“头脑上的悲剧”? 
  为什么最近几年 FPGA 变得越发受大家重视了? 
  Kaggle如何入门? 
  word2vec有什么应用? 
  如何评价第一局比赛 AlphaGo 战胜李世石? 
  2019 秋招的 AI 岗位竞争激烈吗? 
  如何评价李飞飞和李佳加盟谷歌? 

前一个讨论
为什么多标签分类(不是多类分类)损失函数可以使用Binary Cross Entropy?
下一个讨论
为什么C4.5决策树能处理连续特征,ID3树不能处理连续特征?





© 2024-06-29 - tinynew.org. All Rights Reserved.
© 2024-06-29 - tinynew.org. 保留所有权利