浅谈决策树c4.5

来源:互联网 发布:北京时时彩计划数据 编辑:程序博客网 时间:2024/04/28 09:45

一、C4.5算法的简介

            1993年由Quilan提出的C4.5算法(对ID3的改进)

             C4.5比ID3的改进:

            1) 用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足;
            2)能够完成对连续属性的离散化处理;
            3)能够对不完整数据进行处理;
            4)在树构造过程中进行剪枝。

            C4.5算法优点:产生的分类规则易于理解,准确率较高。

            C4.5算法缺点:在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。

            与ID3不同,C4.5采用基于信息增益率(information Gain Ratio)的方法选择测试属性,信息增益率等于信息增益对分割信息量的比值。
            GainRatio(S,F)=Gain(S,F)/SplitInformation(S,F)
            设样本集S按离散属性F的V个不同的取值划分为,共V个子集
            定义分割信息量Split(S, F):

                                        
             那么信息增益率为:

                                         

二、C4.5算法步骤示意

          C4.5(DataSet, featureList):
                   创建根节点R
                   如果当前DataSet中的数据都属于同一类,则标记R的类别为该类
                   如果当前featureList 集合为空,则标记R的类别为当前 DataSet中样本最多的类别
                   递归情况:
                           从featureList中选择属性F(选择GainRatio(DataSet, F)最大的属性,连续属性参见上面的离散化过程)
                           根据F的每一个值v,将DataSet划分为不同的子集DS,对于每一个DS:
                           创建节点C
                           如果DS为空,节点C标记为DataSet中样本最多的类别
                           如果DS不为空,节点C=C4.5(DS, featureList - F)
                           将节点C添加为R的子节点

三、C4.5的解决的问题

连续型属性问题处理:

        离散化处理:将连续型的属性变量进行离散化处理,形成决策树的训练集
        把需要处理的样本(对应根节点)或样本子集(对应子树)按照连续变量的大小从小到大进行排序。假设该属性对应的不同的属性值一共有N个,那么总共有N-1个可能的候选分割阈值点,每个候选的分割阈值点的值为上述排序后的属性值中两两前后连续元素的中点。 取信息增益最大的来选择最佳划分。

属性值缺失问题处理:

        缺失值:在某些情况下,可供使用的数据可能缺少某些属性的值。例如(X, y)是样本集S中的一个训练实例,X=(F1_v, F2_v, …Fn_v)。但是其属性Fi的值Fi_v未知。
        处理策略:处理缺少属性值的一种策略是赋给它结点t所对应的训练实例中该属性的最常见值;另外一种更复杂的策略是为Fi的每个可能值赋予一个概率;简单处理策略就是丢弃这些样本。

过拟合问题处理:

        过拟合:有监督的算法需要考虑泛化能力,在有限样本的条件下,决策树超过一定规模后,训练错误率减小,但测试错误率会增加。
        为了避免过拟合,采用剪枝技术。
        剪枝:控制决策树规模的方法称为剪枝,一种是预剪枝,一种是后剪枝。所谓先剪枝,实际上是控制决策树的生长;后剪枝是指,对完全生成的决策树进行修剪。
        预剪枝(pre-pruning):
               1) 数据划分法。划分数据成训练样本和测试样本,使用用训练样本进行训练,使用测试样本进行树生长检验。    
               2) 阈值法。当某节点的信息增益小于某阈值时,停止树生长。
               3) 信息增益的统计显著性分析。从已有节点获得的所有信息增益统计其分布,如果继续生长得到的信息增    益与该分布相比不显著,则停止树的生长。
        优点:简单直接;
        缺点:对于不回溯的贪婪算法,缺乏后效性考虑,可能导致树提前停止。

        后剪枝(post-pruning):
               1)减少分类错误修剪法。使用独立的剪枝集估计剪枝前后的分类错误率,基于此进行剪枝。
               2)最小代价与复杂性折中的剪枝。对剪枝后的树综合评价错误率和复杂性,决定是否剪枝。
               3)最小描述长度准则。最简单的树就是最好的树。对决策树进行编码,通过剪枝得到编码最小的树。
              4) 规则后剪枝。将训练完的决策树转换成规则,通过删除不会降低估计精度的前件修剪每一条规则。
       优点:  实际应用中有效
       缺点:数据量大时,计算代价较大。

0 0
原创粉丝点击