如何对决策树进行剪枝?
决策树的剪枝通常有两种方法,预剪枝(Pre-Pruning)和后剪枝(Post- Pruning)。那么这两种方法是如何进行的呢?它们又各有什么优缺点?
■ 预剪枝
预剪枝的核心思想是在树中结点进行扩展之前,先计算当前的划分是否能带 来模型泛化能力的提升,如果不能,则不再继续生长子树。此时可能存在不同类 别的样本同时存于结点中,按照多数投票的原则判断该结点所属类别。预剪枝对 于何时停止决策树的生长有以下几种方法。
(1)当树到达一定深度的时候,停止树的生长。
(2)当到达当前结点的样本数量小于某个阈值的时候,停止树的生长。
(3)计算每次分裂对测试集的准确度提升,当小于某个阈值的时候,不再继 续扩展。
预剪枝具有思想直接、算法简单、效率高等特点,适合解决大规模问题。但 如何准确地估计何时停止树的生长(即上述方法中的深度或阈值),针对不同问 题会有很大差别,需要一定经验判断。且预剪枝存在一定局限性,有欠拟合的风 险,虽然当前的划分会导致测试集准确率降低,但在之后的划分中,准确率可能 会有显著上升。
■ 后剪枝
后剪枝的核心思想是让算法生成一棵完全生长的决策树,然后从最底层向上
计算是否剪枝。剪枝过程将子树删除,用一个叶子结点替代,该结点的类别同样 按照多数投票的原则进行判断。同样地,后剪枝也可以通过在测试集上的准确率 进行判断,如果剪枝过后准确率有所提升,则进行剪枝。相比于预剪枝,后剪枝 方法通常可以得到泛化能力更强的决策树,但时间开销会更大。
常见的后剪枝方法包括错误率降低剪枝(Reduced Error Pruning,REP)、悲 观剪枝(Pessimistic Error Pruning,PEP)、代价复杂度剪枝(Cost Complexity Pruning,CCP)、最小误差剪枝(Minimum Error Pruning,MEP)、CVP(Critical Value Pruning)、OPP(Optimal Pruning)等方法,这些剪枝方法各有利弊,关注 不同的优化角度,本文选取著名的CART剪枝方法CCP进行介绍。
代价复杂剪枝主要包含以下两个步骤。