在看《统计学习方法》里的 5.5.2 CART剪枝 时,书中有一句话让我很迷惑——g(t)表示剪枝后整体损失函数减少的程度,在T0中剪去g(t)最小的Tt,将得到的子树作为T1,同时将最小的g(t)设为a1,T1为区间[a1,a2)的最优子树。
第一,为什么g(t)表示剪枝后整体损失函数减少的程度?
第二,为什么在T0中剪去g(t)最小的Tt?
在网上查找了大量资料后,发现有此疑惑的人不少。总结如下:
首先由式5.29,5.30可知,对于某内部节点t,当a增大超过临界值时,剪枝比不剪枝局部损失函数小。
g(t)表示节点t剪枝与不剪枝具有相同局部损失函数的a的临界值。
当a从0开始缓慢增大,总会有某棵子树该剪(剪枝使得局部损失函数减小),其他子树不该剪(剪枝使得局部损失函数增大)的情况,即a超过了某个结点的g(t),但还没有超过其他结点的g(t)。
这样随着a不断增大,不断地剪枝,就得到了n+1棵子树,接下来只要用独立数据集测试这n+1棵子树,试试哪棵子树的总体损失函数最小就知道哪棵是最好的方案了。
这也顺便说明了为什么之后要进行交叉验证:因为局部损失函数小不代表总体损失函数小。
欢迎评论区讨论!
参考资料:https://blog.csdn.net/zhengzhenxian/article/details/79083643