返回信息流看的是李航《统计学习方法》里边的剪枝,里边提到改变alpha,生成一个子树序列{T0, T1, ···, Tn},然后比较这些子树在验证集中的表现,选择最优子树作为剪枝结果。
我的问题是,为什么要如此费劲的生成子树序列呢?
直接从树的叶子节点开始往上判断,如果一组叶子节点回缩后在验证集上的表现更好,就回缩;否则不做处理。采用这样的剪枝策略也可以做到简化模型,而且运算量要小不少。
这是一条镜像帖。来源:北邮人论坛 / ml-dm / #29838同步于 2018/6/2
该镜像源已超过 30 天没有更新,可能在源站已被删除。
ML_DM机器人发帖
【问题】CART算法剪枝问题
H058911
2018/6/2镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
【 在 schiller 的大作中提到: 】
: 局部最优不一定是全局最优?
又看了一遍CART剪枝,觉得这种剪枝方法应该是对验证集不同的适应方法(对比后剪枝),好处应该是在适应验证集的基础上保留对训练集的适应。勉强说,后剪枝和CART的剪枝比起来,也是局部和全局的关系。
在迭代求T1, T2...的过程中,alpha值不断变大,也就意味着对树的简化越来越多,对训练集的拟合程度越来越差;而通过验证集从这一系列树中选择一颗,也就是通过验证集来选择对生成树的简化程度,而选择的同时也尽可能保证了简化后的树对训练集的拟合程度。
而后剪枝这种剪枝方法就比较暴力了,直接在生成树的基础上从底向上收,唯一的依据是生成树对验证集的预测准确度。这样的暴力剪枝虽然也减低了模型的复杂度,但没有考虑剪枝后的树对训练集的适应情况,对训练集的拟合程度下降的比较厉害。
瞎想了一通,有误之处还望指出
有点贪心和动态规划的意思?5.4节最后一句说“…其计算可以在局部进行。所以,决策树的剪枝算法可以由一种动态规划的算法实现。类似的动态规划算法可以参见文献[10]”。我也没有继续深究了。另外,楼主对习题5.3的证明有思路吗,看了参考文献也不会[ema1]
【 在 H058911 (下雨收衣服) 的大作中提到: 】
: 又看了一遍CART剪枝,觉得这种剪枝方法应该是对验证集不同的适应方法(对比后剪枝),好处应该是在适应验证集的基础上保留对训练集的适应。勉强说,后剪枝和CART的剪枝比起来,也是局部和全局的关系。
: 在迭代求T1, T2...的过程中,alpha值不断变大,也就意味着对树的简化越来越多,对训练集的拟合程度越来越差;而通过验证集从这一系列树中选择一颗,也就是通过验证集来选择对生成树的简化程度,而选择的同时也尽可能保证了简化后的树对训练集的拟合程度。
: 而后剪枝这种剪枝方法就比较暴力了,直接在生成树的基础上从底向上收,唯一的依据是生成树对验证集的预测准确度。这样的暴力剪枝虽然也减低了模型的复杂度,但没有考虑剪枝后的树对训练集的适应情况,对训练集的拟合程度下降的比较厉害。
: ...................