大数据经典算法解析(10)一CART算法

姓名:崔升    学号:14020120005

转载自:http://www.cnblogs.com/en-heng/p/5173704.html

【嵌牛导读】:

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

【嵌牛鼻子】:经典大数据算法之CART算法的简单介绍

【嵌牛提问】:CART是一种怎么的算法,其数学原理又是如何?

【嵌牛正文】:

 1. 前言

不同于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指数,是因为较于熵而言其计算速度更快一些。对决策树的节点tt,Gini指数计算公式如下:

Gini(t)=1−∑k[p(ck|t)]2(1)(1)Gini(t)=1−∑k[p(ck|t)]2

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

G(D,A)=|DL||D|Gini(DL)+|DR||D|Gini(DR)(2)(2)G(D,A)=|DL||D|Gini(DL)+|DR||D|Gini(DR)

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

410[1−(14)2−(34)2]+610[1−(26)2−(46)2]=0.417410[1−(14)2−(34)2]+610[1−(26)2−(46)2]=0.417

CART算法

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

若满足停止分裂条件(样本个数小于预定阈值,或Gini指数小于预定阈值(样本基本属于同一类,或没有特征可供分裂),则停止分裂;

否则,选择最小Gini指数进行分裂;

递归执行1-2步骤,直至停止分裂。

3. CART剪枝

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

Lα(T)=C(T)+α|T|(3)(3)Lα(T)=C(T)+α|T|

其中,C(T)C(T)表示决策树的训练误差,αα为调节参数,|T||T|为模型的复杂度。

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

将αα递增0=α0<α1<α2<⋯<αn0=α0<α1<α2<⋯<αn,计算得到对应于区间[αi,αi+1)[αi,αi+1)的最优子树为TiTi;

从最优子树序列{T1,T2,⋯,Tn}{T1,T2,⋯,Tn}选出最优的(即损失函数最小的)。

如何计算最优子树为TiTi呢?首先,定义以tt为单节点的损失函数为

Lα(t)=C(t)+αLα(t)=C(t)+α

以tt为根节点的子树TtTt的损失函数为

Lα(Tt)=C(Tt)+α|Tt|Lα(Tt)=C(Tt)+α|Tt|

令Lα(t)=Lα(Tt)Lα(t)=Lα(Tt),则得到

α=C(t)−C(Tt)|Tt|−1α=C(t)−C(Tt)|Tt|−1

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

g(t)=C(t)−C(Tt)|Tt|−1g(t)=C(t)−C(Tt)|Tt|−1

剪枝流程如下:

对输入决策树T0T0,自上而下计算内部节点的g(t)g(t);选择最小的g(t)g(t)作为α1α1,并进行剪枝得到树T1T1,其为区间[α1,α2)[α1,α2)对应的最优子树。

对树T1T1,再次自上而下计算内部节点的g(t)g(t);……α2α2……T2T2……

如此递归地得到最优子树序列,采用交叉验证选取最优子树。

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

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

应改为回到步骤(3),要不然所有αα均一样了。

4. 参考资料

[1] 李航,《统计学习方法》.

[2] Pang-Ning Tan, Michael Steinbach, Vipin Kumar,Introduction to Data Mining.

[3] Dan Steinberg, The Top Ten Algorithms in Data Mining.

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,117评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,328评论 1 293
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,839评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,007评论 0 206
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,384评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,629评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,880评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,593评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,313评论 1 243
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,575评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,066评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,392评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,052评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,082评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,844评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,662评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,575评论 2 270

推荐阅读更多精彩内容