先说好前面部分我引用自以下这篇文章的,我不想写了
https://blog.csdn.net/wjc1182511338/article/details/76793164?locationNum=6&fps=1
CART之剪枝详解
我们这里用的是代价复杂度剪枝算法。
首先我们将一颗充分生长的树称为T0 ,我们希望减少树的大小来防止过拟化,但又担心去掉一些节点后预测的误差会增大,那么如何达到这两个变量之间的平衡则是问题的关键,因此我们用一个变量α来平衡,因此损失函数定义为如下:
T为任意子树,C(T)为预测误差,可以是平方误差也可以是基尼指数,|T|为子树T的叶子节点个数,注意是叶子节点,α 是参数,C(T)衡量训练数据的拟合程度,|T|衡量树的复杂度(即大小),α 权衡拟合程度与树的复杂度。
那么我们如何找到这个合适的α来使拟合程度与复杂度之间达到最好的平衡呢,最好的办法就是,我们将α从0取到正无穷,对于每一个固定的α,我们都可以找到使得Cα(T)最小的最优子树T(α) 。当α 很小的时候,T0是这样的最优子树,当α很大的时候,单独一个根节