一、决策树的剪枝
所谓剪枝是指去掉决策树中的部分叶节点。该操作主要是用来防止过拟合,对于一般的数据集而言,如果总是追求”高纯度的“叶节点,或者观测数量较小的叶节点,那就很容易使得构建的树过于庞杂,尤其是存在可以反复使用的连续型变量的时候,这种情况更容易发生,此时就需要主动去掉一些分支来降低过拟合的风险,这就是剪枝处理。
常见的剪枝策略有: ”预剪枝“(Pre-Pruning) 和 ”后剪枝“(Post-Pruning)
(1)预剪枝: 在节点划分之前先评估本次划分能否带来模型性能的提升,当本次节点划分不能带来决策树泛化性能的提升时,就停止划分并且将当前节点标记为叶节点。
(2)后剪枝: 先训练生成一棵完整的树,然后自底向上对非叶节点进行考察,如果将该节点对应的子树替换为叶节点能带来模型泛化能力的提升,则将该子树替换为叶节点。
二、剪枝总结
|
预剪枝 |
后剪枝 |
分支数 |
很多分支都没有展开 |
保留了更多分支 |
拟合风险 |
降低过拟合风险,但是由于基于 “贪心” 算法的本质,禁止后续分支展开可能带来欠拟合风险 |
先生成决策树,自下而上逐一考察,欠拟合风险小,泛化能力更强 |
时间开销 |
训练开销和测试开销小 |
训练开销大很多 |