ID3 C4.5 C5.0

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



决策树算法是应用最广泛的分类方法之一[51] 。其核心算法是ID3算法和后来的改进算法C4.5算法。与ID3相比,C4.5主要改进如下:

① 用信息增益率来选择属性,克服了用信息增益来选择属性时偏向选择值多的属性的不足。信息增益率定义为:


 

 

其中Gain(S,A)与ID3算法中的信息增益相同,而分裂信息SplitInfo(S,A)代表了按照属性A分裂样本集S的广度和均匀性。


其中,S1到Sc是c个不同值的属性A分割S而形成的c个样本子集。

②可以处理连续数值型属性。例如,假设A为一个连续的数值型属性,首先检查样本集中该属性的所有取值,然后将其按升序排列为A1,A2,…,Am。对于每一个Aj,j=1,2,…,m-1,将样本集划分为两个样本子集,一子集是各记录属性A的值均小于等于Aj,另一子集是其各记录属性A的值均大于Aj。对于每个划分,计算相应的信息增益率,然后选择增益率最大的划分,作为属性A的信息增益率。

③ 为了避免树的高度无节制的增长,避免过度拟合数据,采用了一种后剪枝方法,该方法是从一种称为”规则后修剪”(rulepost-pruning)的方法演变而来。该方法使用训练样本集本身来估计剪枝前后的误差,从而决定是否真正剪枝。方法中使用的公式如下:


其中N是实例的数量,f=E/N为观察到的误差率(其中E为N个实例中分类错误的个数),q为真实的误差率,c为置信度(C4.5算法的一个输入参数,默认值为0.25),z为对应于置信度c的标准差,其值可根据c的设定值通过查正态分布表得到。通过该公式即可计算出真实误差率q的一个置信度上限,用此上限为该节点误差率e做一个悲观的估计:


通过判断剪枝前后e的大小,从而决定是否需要剪枝。

④对于缺失值的处理。在某些情况下,可供使用的数据可能缺少某些属性的值。假如〈x,c(x)〉是样本集S中的一个训练实例,但是其属性A的值A(x)未知。处理缺少属性值的一种策略是赋给它结点n所对应的训练实例中该属性的最常见值;另外一种更复杂的策略是为A的每个可能值赋予一个概率。例如,给定一个布尔属性A,如果结点n包含6个已知A=1和4个A=0的实例,那么A(x)=1的概率是0.6,而A(x)=0的概率是0.4。于是,实例x的60%被分配到A=1的分支,40%被分配到另一个分支。这些片断样例(fractionalexamples)的目的是计算信息增益,另外,如果有第二个缺少值的属性必须被测试,这些样例可以在后继的树分支中被进一步细分。C4.5就是使用这种方法处理缺少的属性值。


 

C5.0是决策树模型中的算法,79年由J RQuinlan发展,并提出了ID3算法,主要针对离散型属性数据,其后又不断的改进,形成C4.5,它在ID3基础上增加了队连续属性的离散化。C5.0是C4.5应用于大数据集上的分类算法,主要在执行效率和内存使用方面进行了改进。

C4.5算法是ID3算法的修订版,采用GainRatio来加以改进方法,选取有最大GainRatio的分割变量作为准则,避免ID3算法过度配适的问题。

C5.0算法则是C4.5算法的修订版,适用于处理大数据集,采用Boosting方式提高模型准确率,又称为BoostingTrees,在软件上计算速度比较快,占用的内存资源较少。

 

决策树模型,也称规则推理模型。通过对训练样本的学习,建立分类规则;依据分类规则,实现对新样本的分类;属于有指导(监督)式的学习方法,有两类变量:目标变量(输出变量),属性变量(输入变量)。

 

决策树模型与一般统计分类模型的主要区别:决策树的分类是基于逻辑的,一般统计分类模型是基于非逻辑的。

 

常见的算法有CHAID、CART、Quest和C5.0。对于每一个决策要求分成的组之间的“差异”最大。各种决策树算法之间的主要区别就是对这个“差异”衡量方式的区别。

 

决策树很擅长处理非数值型数据,这与神经网络智能处理数值型数据比较而言,就免去了很多数据预处理工作。

 

C5.0是经典的决策树模型算法之一,可生成多分支的决策树,目标变量为分类变量,使用C5.0算法可以生成决策树或者规则集。C5.0模型根据能偶带来的最大信息增益的字段拆分样本。第一次拆分确定的样本子集随后再次拆分,通常是根据另一个字段进行拆分,这一过程重复进行指导样本子集不能在被拆分为止。最后,重新缉拿眼最低层次的拆分,哪些对模型值没有显著贡献的样本子集被提出或者修剪。

 

C5.0优点:

 

C5.0模型在面对数据遗漏和输入字段很多的问题时非常稳健;

 

C5.0模型比一些其他类型的模型易于理解,模型退出的规则有非常直观的解释;

 

C5.0也提供强大技术以提高分类的精度。

 

C5.0算法

 

C5.0算法选择分支变量的依据:以信息熵的下降速度作为确定最佳分支变量和分割阀值的依据。信息熵的下降意味着信息的不确定性下降。

 

信息熵:信息量的数学期望,是心愿发出信息前的平均不确定性,也称先验熵。

 

           信息ui(i=1,2,…r)的发生概率P(ui)组成信源数学模型,å P(ui)1;

 

              信息量(单位是bit,对的底数取2)

 

                                      

 

        信息熵:先验不确定性:

                                  

 

信息熵H(U)的性质
 
H(U)=0时,表示只存在唯一的可能性,不存在不确定性
如果信源的k个信号有相同的发出概率,即所有的uiP(ui)=1/k, H(U)达到最大,不确定性最大
       P( u i ) 差别越小,  H ( U ) 就越大;  P( u i 差别大,  H ( U ) 就越小

 

        决策树中熵的应用:

         设S是一个样本集合,目标变量C有K个分类,freq(Ci,S)表示属于Ci类的样本数,|S|表示样本几何S的样本数。则几何S的信息熵定义为:

 

                                

            如果某属性变量T,有N个分类,则属性变量T引入后的条件熵定义为:

                                

            属性变量T带来的信息增益为:

                                  

C5.0算法示例:

该组样本的熵:

关于T1的条件熵为:

T1带来的信息增益为:


 

Boosting方法概述

  Boosting方法是一种用来提高弱分类算法准确度的方法,这种方法通过构造一个预测函数系列,然后以一定的方式将他们组合成一个预测函数。他是一种框架算法,主要是通过对样本集的操作获得样本子集,然后用弱分类算法在样本子集上训练生成一系列的基分类器。他可以用来提高其他弱分类算法的识别率,也就是将其他的弱分类算法作为基分类算法放于Boosting框架中,通过Boosting框架对训练样本集的操作,得到不同的训练样本子集,用该样本子集去训练生成基分类器;每得到一个样本集就用该基分类算法在该样本集上产生一个基分类器,这样在给定训练轮数n 后,就可产生 n 个基分类器,然后Boosting框架算法将这 n个基分类器进行加权融合,产生一个最后的结果分类器,在这n个基分类器中,每个单个的分类器的识别率不一定很高,但他们联合后的结果有很高的识别率,这样便提高了该弱分类算法的识别率。在产生单个的基分类器时可用相同的分类算法,也可用不同的分类算法,这些算法一般是不稳定的弱分类算法,如神经网络(BP),决策树(C4.5)等。

Boosting算法的简单高效受到了人们的很多关注。它使得
在实际应用中,我们不必费力地寻找预测精度很高的算法,而只
需找到一个比随机猜测略好的弱学习算法,就可以通过Boosting
将其提升为强学习算法,从而也相应地达到提高预测精度的
目的。

C4.5决策树作为弱学习器,选择迭代次数为10次,,其平均误差为15.66%,使用Boosting能够使平均误差降低到13.36%

Boosting  要求“不稳定”的分类方法,例如:决策树、神经网
络算法等。所谓不稳定指的是数据集的小的变动能够使得分类
结果显著地变动。Boosting算法具有很多优点,它有较高的正
确率,不需要先验知识,只需要选择合适的迭代次数等。但是它速度慢,在一定程度上依赖于训练数据集合和弱学习器的选择,
训练数据不充足或者弱学习器太过“弱”,都将导致其训练精度
的下降。另外,Boosting  易受到噪声的影响,这是因为它在迭代
过程中总是给噪声分配较大的权重,使得这些噪声在以后的迭
代中受到更多的关注。

Boosting  中迭代次数是一个经验值,如何选择合适的迭代次数;Boosting 
某些情况下会发生过适应现象,找到产生过适应的条件也是一
个值得研究的方面;如何减少Boosting  对噪声的敏感;Boosting 
和模糊集理论相结合在多分类中的应用等。
http://blog.sina.com.cn/s/blog_62c8f49901017j9p.html
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值