信息增益准则为啥对可取值数目较多的属性有所偏好

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了信息增益准则为啥对可取值数目较多的属性有所偏好相关的知识,希望对你有一定的参考价值。

从公式出发,信息增益是整个数据集的经验熵与特征A对整个数据集的经验条件熵的差值,信息增益越大即经验条件熵越小,那什么情况下的属性会有极小的的经验条件熵呢?举个极端的例子,如果将身份证号作为一个属性,那么,其实每个人的身份证号都是不相同的,也就是说,有多少个人,就有多少种取值,如果用身份证号这个属性去划分原数据集,那么,原数据集中有多少个样本,就会被划分为多少个子集,这样的话,会导致信息增益公式的第二项整体为0,虽然这种划分毫无意义,但是从信息增益准则来讲,这就是最好的划分属性。其实从概念来讲,就一句话,信息增益表示由于特征A而使得数据集的分类不确定性减少的程度,信息增益大的特征具有更强的分类能力。 参考技术A ID3算法是决策树的一个经典的构造算法,在一段时期内曾是同类研究工作的比较对象,但通过近些年国内外学者的研究,ID3算法也暴露出一些问题,具体如下:
(1)信息增益的计算依赖于特征数目较多的特征,而属性取值最多的属性并不一定最优。
(2)ID3是非递增算法。
(3)ID3是单变量决策树(在分枝节点上只考虑单个属性),许多复杂概念的表达困难,属性相互关系强调不够,容易导致决策树中子树的重复或有些属性在决策树的某一路径上被检验多次。
(4)抗噪性差,训练例子中正例和反例的比例较难控制。
于是Quilan改进了ID3,提出了C4.5算法。C4.5算法现在已经成为最经典的决策树构造算法,排名数据挖掘十大经典算法之首,下一篇文章将重点讨论。
决策树的经典构造算法——C4.5(WEKA中称J48)
由于ID3算法在实际应用中存在一些问题,于是Quilan提出了C4.5算法,严格上说C4.5只能是ID3的一个改进算法。
C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进行了改进:
1) 用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足;
2) 在树构造过程中进行剪枝;
3) 能够完成对连续属性的离散化处理;
4) 能够对不完整数据进行处理。
C4.5算法有如下优点:产生的分类规则易于理解,准确率较高。其缺点是:在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。此外,C4.5只适合于能够驻留于内存的数据集,当训练集大得无法在内存容纳时程序无法运行。
另外,无论是ID3还是C4.5最好在小数据集上使用,决策树分类一般只试用于小数据。当属性取值很多时最好选择C4.5算法,ID3得出的效果会非常差。本回答被提问者采纳

DecisionTree

1.信息增益的定义,也就是互信息

2.信息增益的推导

 

 

由公式即可得到信息增益

信息增益存在偏向于选择取值较多的特征的问题,信息增益比可以对这一问题进行修正

3.信息增益比

4.基尼指数,基尼指数越大,样本集合的不确定性也就越大,与熵类似

 

5.ID3算法,使用信息增益作为特征选择准则,递归选择信息增益最大的特征,递归终止条件是信息增益小于某个阈值

6.C4.5算法,使用信息增益比作为选择标准

7.CART(分类与回归树) 回归树以平方误差最小化为准则选择特征,分类树使用基尼指数作为特征选择标准,选择基尼指数最小的作为特征。

7.决策树的剪枝,对付过拟合

损失函数,其中,<Tleaf>是叶子结点的个数

Nt是第t个叶子结点的样本点个数,H(t)为叶节点t的经验熵,或者是基尼指数

如果是经验熵,Ntk是节点t上属于第k类的样本的个数。

CART树的剪枝算法

第一步:剪枝系数的确定

第二步:剪枝算法

 

以上是关于信息增益准则为啥对可取值数目较多的属性有所偏好的主要内容,如果未能解决你的问题,请参考以下文章

决策树

Python机器学习(十九)决策树之系列二—C4.5原理与代码实现

机器学习之决策树

SparkMLlib回归算法之决策树

AI机器学习-信息熵,条件熵,信息增益

分类算法:决策树(C4.5)(转)