5对复杂的条件验证唯一_第5章 决策树

其他部分李航老师讲的应该很清楚了,这里主要来厘清一下CART剪枝部分。

先来回顾下剪枝。书中的描述是这样的:

决策树的剪枝往往通过极小化决策树整体的损失函数或代价函数来实现

决策树的损失函数定义如下:

表示模型对训练数据的预测误差,即模型与训练数据的拟合程度;
表示模型复杂度(叶子节点个数),参数
控制两者之间的影响(即权衡两者的比重)。

因此剪枝即是在确定

的情况下,求解

CART 剪枝

CART(分类与回归树)假设决策树是二叉树,它的剪枝方式称为CART剪枝,是一种代价复杂度剪枝。书中关于这部分的描述有点逻辑混乱的感觉(找了一些资料才勉强理解一些)。

首先,不管是CART剪枝还是其他剪枝,都是遵循式(5.1)描述的最小化整体损失函数原则。但是这里有一个问题,就是如何去选择式(5.1)第二项的那个权衡因子

?显然我们取不同的
,得到的最优剪枝子树是不同的。
书中提到:容易验证,对于固定的
, 一定存在唯一的最优子树
,使得损失函数
最小。关于这个证明(也是课后习题5.3),可以查看我这个回答:
《统计学习方法》习题 5.3,关于Cart剪枝最小子树的证明过程?​www.zhihu.com
6e4ef7f186a31f44ffaf66bd307f0fd1.png

直观地讲,

越小,决策树越复杂(等于0的时候,不剪枝反而是拟合程度最高),而
越大,则决策树越简单,极端的情况,
,决策树退化为单个节点(多数决)

因此可以得出:对于简单的树,需要的

的值更大。

明确目标:选择一个合适的

, 使得交叉验证的结果最好

做法:确定端点,划分

的取值区间,在这些区间内总能找到一棵最优子树,使得损失函数最小。

于是该如何划分区间?

我们假设初始整体树为

,对于
的任意内部节点
, 剪枝后以
为单节点的损失为:

而不剪枝(保留其叶子节点),形成的子树

的损失为:

时,进行剪枝。求解这个不等式,可以得到:

记 :

即是决策树内部任意节点
的剪枝决策边界。对于不同的内部节点,有不同大小的
,因而可以将整个
的取值划分为
段。举个例子,对于初始完整树
,根据式(5.4) 计算所有内部节点的
,取
,在
这个区间,无论哪个内部节点,剪枝的结果都会使得损失函数变大,因此在该区间,原始
即最优的子树。

获得

这个边界值后,迭代获取下一个边界值,先根据
找到对应的内部节点,剪枝后获得
,对于
重复式(5.4)的计算得到
,必然有
,在
区间里,
是最优子树。

如此迭代,就能获得一个区间

,在每个区间内,都有一棵最优的子树。

这里提下为什么区间子树即上述所推导的序列

(即课后题5.4),假设某个区间
存在更优的子树
,则存在
总能进一步细分该区间,使得整体区间被进一步划分。

整个过程归结来说就是用交叉验证尝试不同的阿尔法值。因为阿尔法是离散的,并且可以知道在每个不同的小区间上阿尔法值的作用各自都是一样的(因为在区间上的不同值,所代表的修剪出来的树是一样的),所以总结来说,上述的过程就是求解各个区间端点的过程。而端点就是不同的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值