cart树剪枝

Posted 合唱团abc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了cart树剪枝相关的知识,希望对你有一定的参考价值。

当前子树的损失函数:

$C_a(T) = C(T) + a|T|$, 其中$C(T)$为对训练数据的预测误差,$|T|$为树的叶子结点数目,反映模型的复杂度。对固定的$a$,一定存在使损失函数$C_a(T)$最小的子树,将其表示为$T_a$, 极端情况,当 $a = 0$时,整体树是最优的,当$a -> \infty  $时,根节点组成的单节点树是最优的。

对应于每一个参数技术分享,剪枝后的子树是唯一的。在算法中,给定参数技术分享,找寻损失函数最小的子树技术分享,也就是说技术分享是一一对应的!并不存在一个技术分享对应于多个子树。CART剪枝算法中将用到该基本假设。因为当$a$大的时候,最优子树$T_a$偏小,当$a$小的时候,最优子树$T_a$偏大。

从最宏观的角度去考虑的话,就是利用技术分享生成技术分享。CART剪枝算法的核心思想就是说,一个复杂的决策树,不管多复杂,都能生成有限个数的子树,我们记作技术分享那么我们只要找寻到对应于每一个子树的技术分享,即得到对应的子树!没错,抽象一下,从【有限个数的技术分享】中找寻对应的【技术分享

技术分享或者充分小:
技术分享
决策树叶结点越多,不确定性越低。

当增大技术分享时,总有那么一个点,能够使得:
技术分享

当继续增大技术分享时,
技术分享
所以我们只要取技术分享时,当且仅当技术分享时,剪枝必然发生。

剪枝已经发生,此时,对应于每一个子结点t会生成不同的技术分享我们记作技术分享,由此得: 技术分享
剪枝的决策树什么时候最优?对于当前参数技术分享而言,能够找到这样的t,使得 技术分享
然而在这里为了能够求得技术分享的一个序列,直接最小化了
技术分享
找的技术分享即找到了子结点t,即完成了剪枝,即找到了最优子树技术分享

有了上述的步骤,为了得到决策树技术分享的所有子序列,直接递归下去,直到根节点即可。在这一过程中,不断地增加技术分享的值,产生新的区间。

 

 采用交叉验证法在子树序列中选取最优子树。

 

https://www.zhihu.com/question/22697086

 










以上是关于cart树剪枝的主要内容,如果未能解决你的问题,请参考以下文章

机器学习决策树算法cart剪枝

机器学习算法:cart剪枝

决策树(主要针对CART)的生成与剪枝

cart树剪枝

cart树回归及其剪枝的python实现

5-7 CART树的剪枝