决策树剪枝算法

  剪枝作为决策树后期处理的重要步骤,是必不可少的。没有剪枝,就是一个完全生长的决策树,是过拟合的,需要去掉一些不必要的节点以使得决策树模型更具有泛化能力。

决策树

  决策树就是对一棵形似于树的判决模型,树的节点是某个属性,及分裂点,树的叶是类型。
  在生长过程中,可以有很多种不同的生成准则,具体就不在详述了。不清楚的同学参考之前的博客:http://blog.csdn.net/yujianmin1990/article/details/47406037
  今天主要讲的是决策树的剪枝策略。

决策树剪枝

  为什么剪枝?
  我们生成的好好的决策树,为什么要对其进行剪枝呢?因为我们在生成树的过程中,如果没有剪枝的操作的话,就会长成每一个叶都是单独的一类的样子。这样对我们的训练集是完全拟合的,但是对测试集则是非常不友好的,泛化能力不行。因此,我们要减掉一些枝叶,使得模型泛化能力更强。
  根据剪枝所出现的时间点不同,分为预剪枝和后剪枝。预剪枝是在决策树的生成过程中进行的;后剪枝是在决策树生成之后进行的。

剪枝策略

  剪枝之后,对该节点的类别判别是用“大多数原则“,选择当前数据集下的最多的类标签为该节点的类别。
  1)Reduced Error Pruning:误差降低剪枝
  最简单粗暴的一种后剪枝方法,其目的减少误差样本数量。
   f(T)=tTe(t)
  其中 e(t) 表示在节点 t 下的样本的误判个数; T 表示当前树的节点。
   f(T)=tTe(t)
  其中 T 表示去掉某个节点 N 之后的树的节点; e(t) 表示某个节点下的训练样本点误判数量。
  剪枝的条件: f(T)f(T) ,即 e(tK)e(tK)
  剪枝之后使得误差降低。
  1)Pessimistic Error Pruning:悲观错误剪枝
  该方法基于训练数据的误差评估,因此不用单独找剪枝数据集。但训练数据也带来错分误差偏向于训练集,因此需要加入修正1/2。是自上而下的修剪。
  具有 T 个节点的树的误差率衡量为:
   E(T)=tTe(t)+1/2N(t)
  去掉节点 K 之后 T 个节点的树的误差衡量为(此衡量方法侧重对每个节点的衡量),有的在前面加负号的,基本推导是一致的,剪枝条件的结论是一样的。
   E(T)=tT,excepKe(t)+1/2N(t)
   e(t) 表示节点 t

  • 4
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值