决策树如何做剪枝

预剪枝

就是在决策树生成过程中,在每次划分时,考虑是否能够带来决策树性能的提升。如果可以提升决策树的性能则会进行划分。如果不能则会停止生长。
一般的方法有如下几种:

  1. 当树的深度达到一定的规模,则停止生长。
  2. 达到当前节点的样本数量小于某个阈值的时候。
  3. 计算每次分裂对测试集的准确性提升,当小于某个阈值,或不再提升甚至有所下降时,停止生长。
  4. 当信息增益,增益率和基尼指数增益小于某个阈值的时候不在生长。

优缺点

  • 优点:思想简单,算法高效,采用了贪心的思想,适合大规模问题。
  • 缺点:提前停止生长,有可能存在欠拟合的风险。

后剪枝

  1. 错误率降低剪枝(REP)
  2. 悲观剪枝(PEP)
  3. 代价复杂度剪枝(CCP)
  4. 最小误差剪枝(MEP)
  5. CVP (Critical Value Pruning)
  6. OPP (Optimal Pruning)
    本文以西瓜书为例,错误率降低剪枝(REP)。
    将数据分为训练集和测试集,用训练集去生成一颗完整的决策树,用测试集去剪枝。
    该算法将树上的每个节点都作为剪枝的候选对象,通过如下步骤进行剪枝操作:
  • step1:删除以此节点为根节点的树,
  • step2:使其成为叶子结点,赋予该节点最常见的分类
  • step3:对比删除前和删除后的性能是否有所提升,如果有则进行删除,没有则保留。
posted @ 2020-08-22 12:23  real-zhouyc  阅读(757)  评论(0编辑  收藏  举报