CART决策树剪枝个人理解

@CART决策树剪枝个人理解

本文是针对CART树的个人理解

在看统计学习方法关于CART树的剪枝是,感觉书上讲得很迷惑,因此基于其他博客以及书上内容得出自己的理解。
首先确定CART树的损失函数:C(T) = C(T)+∂|T|;式中C(T)表示预测的精度,即子树T的错误数量/测试集数量,|T|表示子树T的叶子节点数量;C(T)表示子树T的整体损失。
C(t) = C(t)+∂ 表示以树t为根节点的子树T被剪枝之后的损失函数,树t被剪枝之后只剩一个叶节点,因此,为这个。
C(Tt) = C(Tt)+∂|Tt| 表示以树t为根节点的子树Tt未被剪枝时的损失函数
对于CART树而言,当∂很小时,趋近于0,则可认为树的复杂度对整体损失函数无影响,因此为保证树的精度,采取不剪枝的操作,即这里可认为:C(Tt) <C(t)
对于CART树而言,当∂很大时,趋近于正无穷,则可认为树的复杂度对整体损失函数而言占主要影响,因此为保证树的精度,采取剪枝的操作,即这里可认为:C(Tt) >C∂(t)
所以:
在∂由0—>∞的变化时,对于某一个以t为根节点的子树Tt总有一个∂会使C(Tt) =C(t) ;现在,就求使C(Tt) =C(t)的 ∂
C(t)+∂ = C(Tt)+∂|Tt| ==》∂ =(C(t)−C(Tt))/(|T|−1)
即:对于以t为根节点的子树Tt,当∂>(C(t)−C(Tt))/(|T|−1) 时,就可进行对以t为根节点的子树的剪枝了。即将子节点t变为其所含实例最多的类别。或者对于回归树而言,变为在t时刻求均值;对其求误差,也是求取其对应的均方差。
下一步:剪枝之后的子树向上递归对于下一个节点,分析其C(t)与C(Tt) 的大小关系。
因此对于训练集生成的CART树,其剪枝的思想是:
初始化子树T0,找到CART树最下面的以t为根节点的子树Tt,判断其是否需要剪枝
剪枝后的整体损失函数:C(t) = C(t)+∂
剪枝前的整体损失函数:C(Tt) = C(Tt)+∂|Tt|
随着∂的0—>∞的变化过程,有C(Tt)< C∂(t) ====》C(Tt)= C(t) ====》C(Tt)>C(t)的变化。
令g(t)=(C(t)−C(Tt))/(|T|−1),并将g(t)赋值给∂1,
所以,当∂>∂1时,则可认为对以t为根节点的子树Tt进行剪枝,生成新的决策树T1。并又重新观察剪枝后的CART树,对于新的以t为根节点的子树Tt,又需要判断剪枝前与剪枝后的整体损失函数之间的大小关系。
对于新的以t为根节点的子树Tt,随着∂的∂1—>∞的变化过程,存在C(Tt)< C(t) ====》C(Tt)= C(t) ====》C(Tt)>C(t)的变化。
令g(t)=(C(t)−C(Tt))/(|T|−1),并将g(t)赋值给∂2。且由于随着∂的增加,C(Tt)与C(t)都在不断增加。所以:在[∂1,∂2)之间,有∂1是对应着最小的整体损失函数。即T1是该区间内最优的CART子树。
当∂=∂2时,在T1的基础上最新的以t为根节点的子树Tt而言,此时剪枝与不剪枝的整体损失函数相同,因此可以把它归为剪枝一类。当∂>∂2时,判定为对T1进行剪枝,得到新的CART子树T2
随着∂的∂2—>∞的变化过程,对于T2而言,又存在一个新的最小的以t为根节点的子树Tt,分析其剪枝前与剪枝后的整体损失函数:又有:C(Tt)< C(t) ====》C(Tt)= C(t) ====》C(Tt)>C(t)的变化。
因此,对该新的t又基于∂3=(C(t)−C(Tt))/(|T|−1) 可以得到T3
在判定T3之前,在[∂2,∂3)之间,对于T2而言,是需要剪枝的,对于T3而言,不需要剪枝,此时T3可视为等于T2。C(t)与 C(Tt)都是随着∂的增大而增大;因此可认为T2是[∂2,∂3)之间最优的子树。
随着∂的逐渐增加,CART决策树不断对最低的子节点判断是否需要剪枝。因此可以确定在不同区间[∂i,∂i+1)内的最优子树Ti,对于最后:原始的CART树最终变为只有根节点的单树Tn,没有分叉,此时对应的区间为[∂n,∞)。
上述得到了一系列的子树[T0,T1,……,Tn],选择所有子树中整体损失函数最低的子树,其对应的∂i因此也可以确定。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值