其他部分李航老师讲的应该很清楚了,这里主要来厘清一下CART剪枝部分。
先来回顾下剪枝。书中的描述是这样的:
决策树的剪枝往往通过极小化决策树整体的损失函数或代价函数来实现
决策树的损失函数定义如下:
因此剪枝即是在确定
CART 剪枝
CART(分类与回归树)假设决策树是二叉树,它的剪枝方式称为CART剪枝,是一种代价复杂度剪枝。书中关于这部分的描述有点逻辑混乱的感觉(找了一些资料才勉强理解一些)。
首先,不管是CART剪枝还是其他剪枝,都是遵循式(5.1)描述的最小化整体损失函数原则。但是这里有一个问题,就是如何去选择式(5.1)第二项的那个权衡因子
书中提到:容易验证,对于固定的《统计学习方法》习题 5.3,关于Cart剪枝最小子树的证明过程?www.zhihu.com, 一定存在唯一的最优子树
,使得损失函数
最小。关于这个证明(也是课后习题5.3),可以查看我这个回答:
![6e4ef7f186a31f44ffaf66bd307f0fd1.png](https://i-blog.csdnimg.cn/blog_migrate/4c3ebd51f663b58b2f5bd0193e6c813e.jpeg)
直观地讲,
因此可以得出:对于简单的树,需要的
明确目标:选择一个合适的
做法:确定端点,划分
于是该如何划分区间?
我们假设初始整体树为
而不剪枝(保留其叶子节点),形成的子树
当
记 :
获得
如此迭代,就能获得一个区间
这里提下为什么区间子树即上述所推导的序列
整个过程归结来说就是用交叉验证尝试不同的阿尔法值。因为阿尔法是离散的,并且可以知道在每个不同的小区间上阿尔法值的作用各自都是一样的(因为在区间上的不同值,所代表的修剪出来的树是一样的),所以总结来说,上述的过程就是求解各个区间端点的过程。而端点就是不同的