CATRT剪枝算法

来源:互联网 发布:云南省软件行业协会 编辑:程序博客网 时间:2024/05/16 00:31

《统计学习方法》中CATRT剪枝算法看一次糊涂一次在此总结一下。

主要思路对于原始树T0。第一次剪枝后得到子树T1。然后从T1中剪枝得到T2,直到只剩一个根结点的子树Tn。于是得到了T0,T1,...,TN一共n+1棵子树。然后再用这n+1棵子树预测独立的验证数据集谁的误差最小就选谁。

那么问题来了怎么剪枝剪哪些节点

g(t)=(C(t)-C(Tt))/(|Tt|-1)表示简直后整体损失函数减少的程度联立书中(5.27)(5.28)可得

a>g(t),C(t)<C(Tt),则剪枝。a<g(t),C(t)>C(Tt)不剪枝。a=g(t)表示剪枝的阈值。

所以每一个节点就对应一个阈值g(t)

a0开始缓慢增大超过了某个结点的g(t),但还没有超过其他结点的g(t)时会有某棵子树该剪其他子树不该剪的情况。

这样随着a不断增大不断地剪枝就得到了n+1棵子树T0,T1,...,TN

然后只要用独立数据集测试这n+1棵子树哪棵子树的误差最小就用哪棵树。

原创粉丝点击