学习目标:
1.知道什么是剪枝
2.理解剪枝的作用
3.知道常用剪枝方法
4.了解不同剪枝方法的优缺点
1. 剪枝
1.1 为什么要剪枝
决策树剪枝是一种防止决策树过拟合 的一种正则化方法 ,提高其泛化能力;
(剪枝是使得树的模型更简单,可理解为一种正则化的方法,类似L1、L2正则化,严格意义上剪枝更偏向于L1正则化,因为L1可以使权重归0,L2只能无线趋向于0;)
1.2 剪枝
把子树的节点全部删掉,使用叶子节点 来替换;
把叶子节点、子节点删掉,用更大的叶子节点(子树) 替换 叶子节点;
1.3 剪枝方法
1. 预剪枝 :指在决策树生成过程中,对每个节点在划分前先进行估计,若当前节点的划分不能带来决策树泛化性能提升,则停止划分并将当前节点标记为叶节点;
2. 后剪枝 :是先从训练集生成一棵完整的决策树,然后自底向上地对非叶节点进行考察,若将该节点对应的子树替换为叶节点能带来决策树泛化性能提升,则将该子树替换为叶节点。
(预剪枝 是预先凭经验做处理,后剪枝是当这棵决策树完全长成之后在处理;后剪枝更准确,但更消耗资源,因为已经训练完了;预剪枝虽然更节约资源但考虑的并不完全,不能完整的考虑到每一层即预剪枝可能会把当前节点的子集规避掉了,万一当前节点没有得到显著提升,但子集得到了提升的情况被预剪枝直接规避掉了;预剪枝是每到一个节点先判断,只判断当前值,分了以后好不好,好就分、不好就不分;后剪枝是先生成所有,再由下往上逐层进行判断)
1.4 剪枝技术对比

(预剪枝优点 :使决策树很多分支都没展开,即模型简单 ,所以不单降低了过拟合风险,还显著减少了决策树的训练、测试时间开销;缺点 :有些分支的当前划分虽不能提升泛化性能,但后续划分却有可能导致性能的显著提高;预剪機决策树也带来了欠拟合的风险;预剪枝的好处只有一个:节约资源;
后剪枝优点 :比预剪枝保留了更多的分支。一般情况下,后剪枝决策树的欠拟合风险很小,泛化性能往往优于预剪枝(因为他把整棵树生成了,逐层来做判断);缺点 :后剪枝先生成,后剪枝。自底向上地对树中所有非叶子节点进行逐一考察,训练时间开销比未剪枝的决策树和预剪枝的决策树都要大得多;后剪枝唯一的弊端:资源开销大;
总结:预剪枝节约资源,能避免过拟合,但可能存在欠拟合;后剪枝资源开销大,能避免欠拟合,也会降低过拟合风险;)