CART算法
CART假设决策树是二叉树,内部结点特征的取值为“是”和“否”。左分支“是”,右分支“否”。
与ID3和C4.5只有决策树的生成不同的是,CART算法由以下两步组成:
(1)决策树生成:基于训练数据集生成一棵尽量大的决策树。
(2)决策树剪枝:用验证数据集对已生成的树进行剪枝并选择最优子树,这时用损失函数最小作为剪枝的标准。
对回归树用平方误差最小化准则;对分类树用基尼指数最小化准则。生成二叉决策树。
1. CART生成算法
2. CART剪枝算法
CART剪枝算法流程
CART剪枝算法解析( 超详细 )
① 在剪枝的过程中,要计算子树的损失函数,而计算子树的损失函数与之前相比稍加调整:
其中,T为任意的子树,C(T)为对训练数据的预测误差(如基尼指数、平方误差),|T| 为子树 T 的叶结点的个数,Cα(T)是子树整体的损失函数。
其中α为非负数,它权衡着模型对训练数据的拟合程度与模型本身复杂度两者之间的关系。
α|T| 项相当于对子树的叶结点的个数进行惩罚:
Ⅰ. α 越大,对子树叶结点的数量惩罚力度越大,迫使子树有更少的叶结点,即越迫使子树进行剪枝;
Ⅱ. α 越小,则越放松了对子树叶结点数量的压迫,越允许子树有更多的叶结点,即越倾向于不剪枝。
② 对于固定的 α,一定存在损失函数Cα(T)最小的子树,我们称之为最优子树,记为 Tα 。
那么为什么存在且唯一呢?
由 ① 中的结论可知,α 代表了对子树叶结点数量的惩罚程度,因此:
α
:
0
—
—
>
+
∞
\alpha:0 ——>+∞
α:0——>+∞对应于:
树
:
大
—
—
>
小
树:大——>小
树:大——>小可以想象极端情况:
Ⅰ. α = 0 时,对于子树叶结点数量无惩罚力度,因此,整体树(完整的树)是最优的。
Ⅱ. α = ∞时,对于子树叶结点数量具有极大的惩罚力度,迫使树一直剪枝,此时根节点组成的单结点树最优。
③ 因此,考虑到对于固定的 α 有且只有一个最优子树,再结合 α 越大对数的惩罚力度越大。可以知道:
当 α 从 0 慢慢增大到 ∞ 时,最优子树会慢慢从最开始的整体树,一点一点剪枝,直到变成单结点树。 具体数学表述如下:
其中 T0 对应整体树,Tn 对应单结点树。
④ 上述 Ti 对应于 αi ,并且是 α ∈ [αi, αi+1)的最优子树。
为什么呢?
对上面叙述进一步的解释如图:
可以看到随着 α 的增大,决策树会不断地进行剪枝,共剪枝 n 次,形成 n+1个子树序列。
⑤
参考资料:
李航《统计学习方法》