decision tree

决策树在学术上叫做归纳学习。

 

最著名的几种决策树算法有ID3、C4.5、C5.0,最后一种是商业版。都由同一个人,叫做qunlan发明的。

weka平台上有C4.5的java实现,叫做J48算法。

 

本质上是一种从样本集合中学习出分类规则的统计学习方法。最终的产出是一种树状结构的规则集合。

可以处理离散的feature、也可以处理连续的feature,并且C5.0已经是发展为一种boosting的决策树C4.5了,效果有了突飞猛进的进步~

 

基本上在工业界,单纯的决策树是没法用的,我们用的都是boosting后的决策树,效果才有所保证,否则就是个玩具~

 

最早的决策树算法是ID3,有好事者发明了可以增量学习的ID4,以及更高级一点的ID5。

IBM自己搞出了一个可以压缩表示规则树的算法,叫做SLIQ。

常用的决策树生成算法有基于信息论的ID3、C4.5算法以及基于最小GINI指数的CART、SLIQ、PUBLIC算法。

 

CART算法

CART算法采用一种二分递归分割的技术,是将当前样本集分为两个子样本集,使得生成的决策树的每个非叶节点都有两个分枝。因此CART算法生成的决策树是结构简洁的二叉树。CART算法考虑到每个节点都有成为叶子节点的可能,对每个节点都分配类别。分配类别的方法可以用当前节点中出现最多的类别,也可以参考当前节点的分类错误或其它更复杂的方法。

 

PUBLIC算法

决策树算法分两步先建树,后剪枝。而有一些决策树算法考虑到先建树后剪枝的方法将生成好的分枝再剪去是一种效率较低的重复劳动,于是提出将剪枝融入到建树的过程中,即预剪枝。运用这一策略的代表性算法为Rajeev Rastogi等人在2000年提出的PUBLIC算法。与同类后剪枝算法相比,PUBLIC的最大优点是它生成的决策树与对同一样本集使用预剪枝策略生成的决策树完全相同,而效率有大幅度提高。PUBLIC在选择测试属性上采用计算GINI系数的技术,在剪枝时使用基于最小编码代价的MDL算法。PUBLIC并非在建树的最初就同时使用剪枝算法,而是在树生成了一部分之后,对尚未完全生成的决策树进行剪枝,对最终成为叶子的节点不再分割,从而减少工作量,提高效率。

 

SLIQ算法

IBM的研究人员于1996年提出了SLIQ算法。它是一种快速的、可伸缩的决策树算法。既可以处理离散属性也可以处理连续属性。SLIQ采用广度优先方法生成决策树,采用基于MDL的剪枝策略,SLIQ生成的是一棵二叉树。

 

SPRINT算法

John Shafer等人提出的SPRINT算法的目的就是要彻底解决主存容量的限制,能够处理其它任何算法都不适用的超大规模训练样本集,并能有效地生成决策树。

 

IBLE算法

1991年由陈文伟等学者提出的IBLE方法是基于信息论的示例学习方法,利用信息论中信道容量的概念作为对实体中选择重要特征的度量。信道容量是一个不依赖于训练集中正、反例的特征取值的选择量。这样,信道容量克服了互信息依赖正、反比例的缺点。IBLE选择一组重要特征建立规则,作为决策树的结点。这样,用多个特征组合成规则的结点来鉴别实例,能够有效地正确判别。此算法由四部分组成:预处理;建决策树算法;建规则算法;类别判定算法。

 

决策树算法的比较

基于决策树的分类算法自提出至今,种类不下几十种。各种算法在执行速度、可扩展性、输出结果的可理解性,分类预测的准确性等方面各有千秋。决策树分类算法的发展可分为这样几个阶段:首先,最早出现的ID3算法采用信息熵原理选择测试属性分割样本集,只能处理具有离散型属性和属性值齐全的样本,生成形如多叉树的决策树。后来出现的C4.5算法经过改进,能够直接处理连续型属性,也能够处理属性值空缺的训练样本。ID3系列算法和C4.5系列算法虽然在对训练样本集的学习中尽可能多地挖掘信息,但其生成决策树分枝较多,规模较大。为了简化决策树算法,提高生成的决策树的效率,又出现了根据GINI系数来选择测试属性的决策树算法,使得生成的决策树可以是结构简单、易于理解的二叉树。大多数决策树算法都采用后剪枝策略,但后剪枝策略明显存在将已经生成的分枝再剪去的重复劳动,降低了决策树的生成效率,因此出现了以PUBLIC算法为代表的预剪枝决策树算法。之后,为了增加决策树算法的可扩展性和并行性,SLIQ和SPRINT等并行决策树算法被提出。最后,基于人机交互的决策树算法的提出打破了由计算机完全控制决策树生成的局面,将人工智能和人为干预加进了决策树的生成过程中。

 

http://en.wikipedia.org/wiki/C4.5_algorithm

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值