CCP剪枝

    在一棵树生长完成后,往往需要剪枝,这是因为一颗完整的决策树往往容易过拟合。
    CCP即为基于复杂度的剪枝(cost complexity pruning).

一 概念

    在介绍CCP剪枝的原理之前,我们先来介绍一下什么是剪枝以及剪枝所用的评价指标。
1.什么是剪枝?如图,显示了对节点t进行剪枝的过程。

prun.png

2.如何计算整棵决策树的误判率?
    整棵树的误判率被定义为各个叶子节点误判率的加权平均,权重是该叶子节点的样本数的占比。
R(T) = \sum_{t \in \tilde{T}} p(t) r(t)
其中,\tilde{T}代表叶子节点,p(t)是节点t处的样本比例,r(t)是节点t处的误判率。r(t)=1- \max_j p(c_j|t)

二 CCP原理

    CCP的基本形式是找到一个子树使得下式最小:
\min_T R_\alpha(T) = \min_T (R(T) + \alpha |\tilde{T}|)
\alpha是一个复杂度参数,当\alpha较小时,倾向于选择一个较大的树,增大\alpha的值,会减小树的大小。|\tilde{T}|代表所有叶子节点的个数。
    在正式介绍CCP之前,大家可以先想一下以下两个问题并带着这两个问题进行接下来的阅读。

    1. 子树的选择是唯一的吗?换句话说,如果有两种剪枝方式,使得最后的评估指标R是一样大时,该选择哪种剪枝方式呢?
    1. 在剪枝的过程中,如获得的子树分别是{T_1, T_2,...,T_8,...,T_{11},...},那么T_{11}这个更小的子树是否会包含在T_8中?

    先来回答问题1,我们可以对最终选取的子树T(\alpha)做如下定义:
T(\alpha) = \arg \min_{T } R_\alpha(T),若另一个子树T使得R_\alpha(T) = R_\alpha(T(\alpha)),则必然有T(\alpha) \leq T
按照这样的定义选出的子树T(\alpha)是存在且唯一的。这个定义的意思就是如果有两个子树得到的误判率R是相同的,则选取较小的子树作为最终的决策树。

    问题2的答案就在下面的内容中,为了使得后产生的子树包含在之前的子树内,我们采取序贯剪枝的策略。

2.1 子树的产生

    在对CCP有了大概的认识之后,需要找到一系列子树。为什么要产生这些子树呢?
    为了回答这个问题,再回到上面那张剪枝图中,虚线下方的所有节点称为T_t

prun2.png

    下面列出剪枝前后的决策树误判率的相对值,为什么称作相对值呢?因为除了被裁剪的部分,其他节点的误判率和节点个数并不会发生改变,因此我们在这里只关注剪枝的部分。

  • 剪枝前:R_{before} = R(T_t) + \alpha |\tilde{T}|
  • 剪枝后:R_{after} = R(t) + \alpha

    当R_{after} > R_{before},即剪枝后误差增大时不会进行剪枝操作,解出\alpha < \frac{R(t) - R(T_t)}{|\tilde{T}| - 1 },且不等号右边的值大于零。
    原则上\alpha是可以取任意连续值,但是可以想象,随着\alpha的缓慢增大,并不一定需要剪枝,只有当\alpha增大到某个值时,我们发现剪枝减小的叶子节点个数已经可以弥补误判率的增高时,才会去剪枝。也就是在真实情况下,\alpha其实是一个离散的序列,下面介绍的弱连接可以帮助我们找到这些需要进行剪枝操作的\alpha序列。

2.2 Weakest-link弱连接

    \min_t g(t) = \frac{ R(t) - R(T_t)}{|\tilde{T}| - 1 }就是弱连接的定义,就是在树中找到一个节点t使得g(t)最小,也就是达到了剪枝的临界点,可以将节点t以下的节点剪除,继而在这个新的树中再重新寻找弱连接,这样下一次剪枝是在上一次剪枝的基础之上即为序贯剪枝。对完整的决策树T,根据弱连接找\alpha序列,下面是具体过程,

  • 1.在所有的非根节点的节点中,寻找weak-link t,得到\alpha_1,得到子树{T - T_t}。
  • 2.对1中得到的子树重复操作1这一过程。

从而得到一系列的子树{T_1,T_2,...},以及\alpha序列{\alpha_1, \alpha_2,...}。\alpha_i的不同取值对应着不同的子树T_i,当\alpha_k < \alpha < \alpha_{k+1}时,最小化R_\alpha(T)的子树是T_k

\alpha 的选取

    主流做法就是交叉验证。下面给出找出最优\alpha的伪代码。


for \alpha do
    for i in 1,2,...k do
        D 分为D^{(i)}D^i,D^{(i)}=D - D^i
        用D^{(i)}产生T_{max}
        根据CCP产生一系列的子树,找到\alpha对应的子树T_{\alpha}
        计算D^iT_\alpha上的误判率,记为R_i
    R_\alpha = 1/k \sum R_i
arg\min_\alpha E_\alpha


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

推荐阅读更多精彩内容

  • 决策树理论在决策树理论中,有这样一句话,“用较少的东西,照样可以做很好的事情。越是小的决策树,越优于大的决策树”。...
    制杖灶灶阅读 5,851评论 0 25
  • 决策树 1.概述 决策树由节点和有向边组成,节点有两种类型,内部节点和叶节点,内部节点表示一个特征或属性,叶节点表...
    Evermemo阅读 2,291评论 0 1
  • 前言 如果你能找到这里,真是我的幸运~这里是蓝白绛的学习笔记,本集合主要针对《百面机器学习——算法工程师带你去面试...
    蓝白绛阅读 2,728评论 0 1
  • 之前介绍过梯度下降法与牛顿法,GBDT与XGBoost就与这两种方法有关。 boosting(包括GBDT、XGB...
    小松qxs阅读 24,124评论 0 31
  • (整理自2014年某次讲座的演讲稿) 不出意外的话,今年是我作为学生,所能凭依这个身份为所欲为的最后一个年头,不,...
    孙陆辰阅读 7,375评论 0 5