决策树的一些杂七杂八

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得出的效果会非常差。

从公式出发,信息增益是整个数据集的经验熵与特征A对整个数据集的经验条件熵的差值,信息增益越大即经验条件熵越小,那什么情况下的属性会有极小的的经验条件熵呢?举个极端的例子,如果将身份证号作为一个属性,那么,其实每个人的身份证号都是不相同的,也就是说,有多少个人,就有多少种取值,如果用身份证号这个属性去划分原数据集,那么,原数据集中有多少个样本,就会被划分为多少个子集,这样的话,会导致信息增益公式的第二项整体为0,虽然这种划分毫无意义,但是从信息增益准则来讲,这就是最好的划分属性。其实从概念来讲,就一句话,信息增益表示由于特征A而使得数据集的分类不确定性减少的程度,信息增益大的特征具有更强的分类能力。

决策树的优点 相对于其他数据挖掘算法,决策树在以下几个方面拥有优势: 决策树易于理解和实现. 人们在通过解释后都有能力去理解决策树所表达的意义。 对于决策树,数据的准备往往是简单或者是不必要的 . 其他的技术往往要求先把数据一般化,比如去掉多余的或者空白的属性。 能够同时处理数据型和常规型属性。 其他的技术往往要求数据属性的单一。 是一个白盒模型如果给定一个观察的模型,那么根据所产生的决策树很容易推出相应的逻辑表达式。 易于通过静态测试来对模型进行评测。 表示有可能测量该模型的可信度。 在相对短的时间内能够对大型数据源做出可行且效果良好的结果 在AI版发了个帖子说决策树不适宜用于大规模的数据分类,立即遭到了版友的 质疑,现给出论据支持自己的观点: (1)决策树算法是基于规则的算法,在产生规则的时候采用了局部的贪婪方法, 每次只选取一个属性进行分析构造决策树,因而产生大量的规则,数据集很大,规 则就很复杂,效率明显会下降,而且既然是局部最优,无法保障全局最优. (2)决策树的ID3算法涉及到递归了,递归的开销自不待言,当文本规模很大的时候 内存都是问题.  (3)在决策树的学习中,由于分类器过于复杂,会过于适应噪声,从而导致过度 拟合(overfit)的问题。没有很好的泛化性的分类器,用起来还是需要慎重的. 个应该是决策树最大的弊端吧.我一直认为决策树的可取之处是在于给出选择 属性的信息增益的方式.其他的实在不敢恭维.  继续转smallfish的回帖:  1.决策树虽然搜索策略是贪婪的(这也正是它效率高的原因),但它的可搜索空间 却能代表所有离散函数。ID3算法中每个属性只考虑一次,所以规则的数目主要取 决于属性集规模和属性值的个数而非数据集大小,至于“局部最优,性能就没保障” ,除了理想贝叶斯,其他的模型都有可能陷入局部最优值问题,所以性能还要看实 际的问题和应用。  2.并不是有递归开销就一定大,而且它的时间主要耗费在训练阶段,在分类阶段 速度很快。  3.在数据集规模小或噪音大的情况下,任何模型都会可能陷入过拟合,决策树可 以通过交叉验证后剪枝的方法来克服过拟合。  yode回帖: 搜索空间的增加势必增加搜索的代价,信息增益的引入就是为了选取 信息增加最多的知识,从而得到最浓缩的树.  第二,递归的开销在于内存,这点应该是这样的吧呵呵.  第三:过拟合的真正原因是实际风险与经验风险的误差.规模过大,规则过细也会 引起过拟合. 第四:关于除了理想贝叶斯,其他的模型都有可能陷入局部最优值问题有待于考证. --------------------- 本文来自 BlueLoveyyt 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/blueloveyyt/article/details/45013403?utm_source=copy

ID3 D3算法十分简单,核心是根据“最大信息熵增益”原则选择划分当前数据集的最好特征,信息熵是信息论里面的概念,是信息的度量方式,不确定度越大或者说越混乱,熵就越大。在建立决策树的过程中,根据特征属性划分数据,使得原本“混乱”的数据的熵(混乱度)减少,按照不同特征划分数据熵减少的程度会不一样。在ID3中选择熵减少程度最大的特征来划分数据(贪心),也就是“最大信息熵增益”原则。 同时这是最早提出的一种决策树方法,使用上述信息增益的方式建立。 缺点:只能处理离散型属性,并且对倾向于选择取值较多的属性;(为什么?) 原因: 信息增益反映的给定一个条件以后不确定性减少的程度,必然是分得越细的数据集确定性更高,也就是条件熵越小,信息增益越大 C4.5 C4.5算法流程与ID3相类似,只不过将信息增益改为信息增益比,以解决偏向取值较多的属性的问题,另外它可以处理连续型属性。 CART CART是一棵二叉树,采用二元切分法,每次把数据切成两份,分别进入左子树、右子树。而且每个非叶子节点都有两个孩子,所以CART的叶子节点比非叶子多1。相比ID3和C4.5,CART应用要多一些,既可以用于分类也可以用于回归。CART分类时,使用基尼指数(Gini)来选择最好的数据分割特征,gini描述的是纯度,与信息熵的含义相似。CART中每一次迭代都会降低GINI系数 相对于ID3使用的信息增益,CART中用于选择变量的不纯性度量是Gini指数,总体内包含的类别越杂乱,GINI指数就越大(跟熵的概念很相似)。 GINI指数: 1、是一种不等性度量; 2、通常用来度量收入不平衡,可以用来度量任何不均匀分布; 3、是介于0~1之间的数,0-完全相等,1-完全不相等; 4、总体内包含的类别越杂乱,GINI指数就越大(跟熵的概念很相似) CART分析步骤: 1、从根节点t=1开始,从所有可能候选S集合中搜索使不纯性降低最大的划分S*,然后,使用划分S*将节点1(t=1)划分成两个节点t=2和t=3; 2、在t=2和t=3上分别重复划分搜索过程。 基尼不纯度指标: 在CART算法中, 基尼不纯度表示一个随机选中的样本在子集中被分错的可能性。基尼不纯度为这个样本被选中的概率乘以它被分错的概率。当一个节点中所有样本都是一个类时,基尼不纯度为零 离散和连续目标变量的区别: 同时,如果目标变量是标称的,并且是具有两个以上的类别,则CART可能考虑将目标类别合并成两个超类别(双化); 如果目标变量是连续的,则CART算法找出一组基于树的回归方程来预测目标变量。 --------------------- 本文来自 二当家的掌柜 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/github_39261590/article/details/76546281?utm_source=copy

猜你喜欢

转载自blog.csdn.net/qq_39355550/article/details/82808266