上一篇文章介绍了预剪枝,本文接着介绍后剪枝。
其实预剪枝和后剪枝都是为了防止模型过拟合。
我们先记住一句话。
后剪枝,就是将完整的树划分好之后,再考虑如何剪枝。。。
我们先看下完整的划分图。
如何对上图进行剪枝呢?
如果按上图进行划分,验证集的精度为多少呢?
因为验证集中,只有4、11、12三个样本划分正确。
所以验证集的精度为:*100%=42.9%。
一、现在试着先将结点6剪除,此时,划分正确的样本为:4、8、11、12。
所以精度提升至:*100%=57.1%。
这就意味着可以将结点6剪除。
二、将结点6剪除后,试着将结点5剪除。
同理,发现剪除前后精度都是57.1%。所以不进行剪除。
三、分析结点2,根据上一篇文章,结点2剪除前后,对应的精度分别为:57.1%和71.4%。
所以可将结点2进行剪除。
四、分析结点3,剪除前后精度没有变化。所以将结点3保留。
所以经过后剪枝,最终的划分图为:
以上就是后剪枝的具体步骤。
可以看出,预剪枝和后剪枝的不同点在于,后剪枝通常比预剪枝保留了更多的分支。可以防止欠拟合。泛化性能往往优于预剪枝决策树。但是后剪枝的训练时间开销比未剪枝决策树和预剪枝决策树都要大很多。