在前面的专栏文章中,介绍了几种经典的决策树构建的原理和代码示例,
遥感专栏
然而在实际应用中对不同的数据集会存在树过于复杂,以及可能存在过拟合的风险,为此提出剪枝的技术,以期来降低树的复杂度的同时不显著降低其精度,同时可以减少过拟合的问题。
剪枝是机器学习和搜索算法中的一种数据压缩技术,通过去除树上非关键和冗余的部分来减少决策树的大小。
剪枝降低了最终分类器的复杂度,通过减少过拟合来提高预测精度。
采用严格的停止标准往往会产生对训练集过拟合的大决策树。
另一方面,采用宽松的停止标准往往会产生小的、拟合度不足的决策树。
为了解决这一难题,Breiman等人在1984年开发了一种允许决策树对训练集过拟合的过程,然后通过删除对泛化精度无贡献的子分支,将过拟合的树剪成一棵较小的树。多种研究中已经表明,剪枝方法可以提高决策树的泛化性能。
剪枝的另一个关键动机是Bratko和Bohanec提出的“用准确性换取简单性”。当目标是产生一个足够准确、紧凑的概念描述时,剪枝是非常有用的。因为在这个过程中,初始决策树被看作一个完全准确的决策树,所以修剪后的决策树的准确性表明了它与初始树的接近程度。剪枝应该减少树的大小,且不降低交叉验证集所测量的预测精度。
有多种剪枝技术,它们在优化决策树性能方面有所不同。大多数剪枝技术对节点进行自上而下或自下而上的遍历。如果剪枝操作提高了某个标准,那么某个节点就会被修剪。
剪枝过程大致可以分为两种类型:
●预剪枝(pre-pruning)通过替换决策树生成算法中的停止准则(例如,最大树深度或信息增益大于某一阈值)来实现树的简化。预剪枝方法被认为是更高效的方法,因为它们不会反映整个数据集,而是从一开始就保持小树。预剪枝方法有一个共同的问题,即视界限制效应。一般不希望通过停止准则过早地终止诱导。
●后剪枝(post-pruning)是简化树的常见方法,用叶子代替中间节点和子树以提高复杂度。后剪枝不仅可以显著减小树的大小,还可以提高未见过的样本数据的分类精度。可能会出现在测试集上的预测准确率变差的问题,但树的分类准确率总体上会提高。
经典的剪枝算法如图所示:
本文简单引入剪枝算法,并对其进行描述,后续对几种常用的剪枝算法技术进行深入说明。
如果对具体的详细示例有兴趣,可以参考本专栏的参考书目:
<现代决策树模型及其编程实践:从传统决策树到深度决策树 黄智濒>
其电子书和其相关的源码可通过私信咨询获取。资源获取
欢迎点赞,收藏,关注,支持小生,打造一个好的遥感领域知识分享专栏。
同时欢迎私信咨询讨论学习,咨询讨论的方向不限于:地物分类/语义分割(如水体,云,建筑物,耕地,冬小麦等各种地物类型的提取),变化检测,夜光遥感数据处理,目标检测,图像处理(几何矫正,辐射矫正(大气校正),图像去噪等),遥感时空融合,定量遥感(土壤盐渍化/水质参数反演/气溶胶反演/森林参数(生物量,植被覆盖度,植被生产力等)/地表温度/地表反射率等反演)以及高光谱数据处理等领域以及深度学习,机器学习等技术算法讨论,以及相关实验指导/论文指导等多方面。