- CART剪枝算法从“完全生长”的决策树的底端减去一些子树,使决策树变小,从而能够对未知数据有更准确的预测。CART算法由两步组成:首先从生成算法产生的决策树 底端开始不断剪枝,直到
的根结点,形成一个子树序列
;然后通过交叉验证法在独立的验证数据集上对子树序列进行测试,从中选择最优子树。
- 从整体树
开始剪枝,对
的任意内部结点t,以t为单结点树的损失函数是:
,以t为根结点的子树
的损失函数是:
,只要:
,
与t有相同的损失函数值,而t的结点少,因此t比
更可取,对
进行剪枝。
- 为此,对
中每一内部结点t,计算:
,它表示间之后整体损失函数减少的程度,在
中减去g(t)最小
,将得到的子树作为
,同时将最小的g(t)设为
。
,如此剪枝下去,直到得到根结点。在这一过程中,不断地增加
的值。
- 在子树序列中,每棵子树
都对应于一个参数
,通过交叉验证选取最优子树,当最优子树确定时,对应的参数也确定了,即得到最优决策树
。