机器学习方法:决策树(二):CART算法

来源:互联网 发布:电脑虚拟位置软件 编辑:程序博客网 时间:2024/05/20 22:40

该算法由Brieman, Friedman, Olshen和Stone 在1984年提出

1.CART即分类回归树。如果目标变量是离散变量,则是classfication Tree,如果目标是连续变量,则是Regression Tree。

2.CART树是二叉树。 二叉树有什么优点?不像多叉树那样形成过多的数据碎片

3.树的生长及变量处理

(1)对于离散变量X(x1…xn),分别取X变量各值的不同组合,将其分到树的左枝或右枝,并对不同组合而产生的树,进行评判,找出最佳组合。如变量年纪,其值有“少年”、“中年”、“老年”,则分别生产{少年,中年}和{老年},{上年、老年}和{中年},{中年,老年}和{少年},这三种组合,最后评判对目标区分最佳的组合。

(2)对于连续变量X(x1…xn),首先将值排序,分别取其两相邻值的平均值点作为分隔点,将树一分成左枝和右枝,不断扫描,进而判断最佳分割点。

4. 变量和最佳切分点选择原则

树的生长,总的原则是,让枝比树更纯,而度量原则是根据不纯对指标来衡量,对于分类树,则用GINI指标、Twoing指标、Order Twoing等;如果是回归树则用,最小平方残差、最小绝对残差等指标衡量

(1)GINI指标(Gini越小,数据越纯)——针对离散目标


决策树算法—CART

(2)最小平方残差——针对连续目标

决策树算法—CART

其思想是,让组内方差最小,对应组间方差最大,这样两组,也即树分裂的左枝和右枝差异化最大。

(3)通过以上不纯度指标,分别计算每个变量的各种切分/组合情况,找出该变量的最佳值组合/切分点;再比较各个变量的最佳值组合/切分点,最终找出最佳变量和该变量的最佳值组合/切分点

5. 目标值的估计

(1)分类树:最终叶子中概率最大的类

(2)回归树:最终叶子的均值或者中位数

6. 树的剪枝

(1)前剪枝( Pre-Pruning)

通过提前停止树的构造来对决策树进行剪枝,一旦停止该节点下树的继续构造,该节点就成了叶节点。一般树的前剪枝原则有:

a.节点达到完全纯度

b.树的深度达到用户所要的深度

c.节点中样本个数少于用户指定个数

d.不纯度指标下降的最大幅度小于用户指定的幅度

(2)后剪枝( Post-Pruning)

首先构造完整的决策树,允许决策树过度拟合训练数据,然后对那些置信度不够的结点的子树用叶结点来替代。CART 采用Cost-Complexity Pruning(代价-复杂度剪枝法),代价(cost) :主要指样本错分率;复杂度(complexity) :主要指树t的叶节点数,(Breiman…)定义树t的代价复杂度(cost-complexity):

决策树算法—CART

注:参数α:用于衡量代价与复杂度之间关系,表示剪枝后树的复杂度降低程度与代价间的关系,如何定义α?  

对t来说,剪掉它的子树s,以t中最优叶节点代替,得到新树new_t。 new_t可能会比t对于训练数据分错M个,但是new_t包含的叶节点数,却比t少:  (Leaf_s  - 1)个。令替换之后代价复杂度相等

决策树算法—CART

 

CCP剪枝步骤:

第一步:

–  计算完全决策树T_max的每个非叶节点的α值;

–  循环剪掉具有最小α值的子树,直到剩下根节点

–  得到一系列剪枝(嵌套)树{T_0,T_1,T_2,…T_m},其中T_0就是完全决策树T_max。T_i+1是对T_i进行剪枝得到的结果

第二步:

–  使用独立的剪枝集(非训练集)对第一步中的T_i进行评估,获取最佳剪枝树

–  标准错误SE(standart error),公式:

决策树算法—CART

–   最佳剪枝树:T_best 是满足以下条件并且包含的节点数最少的那颗剪枝树。

决策树算法—CART


0 0