(10)数据挖掘算法之CART

1. 前言

分类与回归树(Classification and Regression Trees, CART)是由四人帮Leo Breiman, Jerome Friedman, Richard Olshen与Charles Stone于1984年提出,既可用于分类也可用于回归。本文将主要介绍用于分类的CART。CART被称为数据挖掘领域内里程碑式的算法。

不同于C4.5,CART本质是对特征空间进行二元划分(即CART生成的决策树是一棵二叉树),并能够对标量属性(nominal attribute)与连续属性(continuous attribute)进行分裂。

2. CART生成

前一篇提到过决策树生成涉及到两个问题:如何选择最优特征属性进行分裂,以及停止分裂的条件是什么。

特征选择

CART对特征属性进行二元分裂。特别地,当特征属性为标量或连续时,可选择如下方式分裂:

An instance goes left if CONDITION, and goes right otherwise

即样本记录满足CONDITION则分裂给左子树,否则则分裂给右子树。

标量属性

进行分裂的CONDITION可置为不等于属性的某值;比如,标量属性Car Type取值空间为{Sports, Family, Luxury},二元分裂与多路分裂如下:

连续属性

CONDITION可置为不大于  

;比如,连续属性 Annual Income  

取属性相邻值的平均值,其二元分裂结果如下:

接下来,需要解决的问题:应该选择哪种特征属性及定义CONDITION,才能分类效果比较好。CART采用Gini指数来度量分裂时的不纯度,之所以采用Gini指数,是因为较于熵而言其计算速度更快一些。对决策树的节点  

,Gini指数计算公式如下:

            

Gini指数即为  

与类别     的概率平方之和的差值,反映了样本集合的不确定性程度。Gini指数越大,样本集合的不确定性程度越高。分类学习过程的本质是样本不确定性程度的减少(即熵减过程),故应选择 最小Gini指数的特征分裂。父节点对应的样本集合为   ,CART选择特征   分裂为两个子节点,对应集合为        

;分裂后的Gini指数定义如下:

                    

其中,  

表示样本集合的记录数量。如上图中的表格所示,当Annual Income的分裂值取87时,则Gini指数计算如下:

                           

CART算法

CART算法流程与C4.5算法相类似:

  1. 若满足停止分裂条件(样本个数小于预定阈值,或Gini指数小于预定阈值(样本基本属于同一类,或没有特征可供分裂),则停止分裂;
  2. 否则,选择最小Gini指数进行分裂;
  3. 递归执行1-2步骤,直至停止分裂。

3. CART剪枝

CART剪枝与C4.5的剪枝策略相似,均以极小化整体损失函数实现。同理,定义决策树  

的损失函数为:

        

其中,  

表示决策树的训练误差,   为调节参数,  

为模型的复杂度。

CART算法采用递归的方法进行剪枝,具体办法:

  •  
递增           ,计算得到对应于区间       的最优子树为    
  • 从最优子树序列        
    • 选出最优的(即损失函数最小的)。

    如何计算最优子树为    

    呢?首先,定义以  

    为单节点的损失函数为

       

     

    为根节点的子树    

    的损失函数为

             

           

    ,则得到

            

    此时,单节点  

    与子树     有相同的损失函数,而单节点   的模型复杂度更小,故更为可取;同时也说明对节点   的剪枝为有效剪枝。由此,定义对节点  

    的剪枝后整体损失函数减少程度为

            

    剪枝流程如下:

    • 对输入决策树    
    ,自上而下计算内部节点的   ;选择最小的   作为     ,并进行剪枝得到树     ,其为区间      
  • 对应的最优子树。
  • 对树     ,再次自上而下计算内部节点的   ;……     ……    
    • ……
    • 如此递归地得到最优子树序列,采用交叉验证选取最优子树。

    关于CART剪枝算法的具体描述请参看[1],其中关于剪枝算法的描述有误:

    (6)如果T不是由根节点单独构成的树,则回到步骤(4)

    应改为回到步骤(3),要不然所有  

    均一样了。

    -----------------------------------------------Update ------------------------------------------------------

    李航老师已经在勘误表给出修改了。

    4. 参考资料

    [1] 李航,《统计学习方法》.
    [2] Pang-Ning Tan, Michael Steinbach, Vipin Kumar, Introduction to Data Mining.
    [3] Dan Steinberg, The Top Ten Algorithms in Data Mining.

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值