决策树2

决策树2

  决策树如果一直分类下去,可以直到熵为0或者基尼指数为0。但数据存在噪声,如果把每一个点都分类正确,模型的泛华能力就不够,此时的模型分类效果好就仅仅是一种巧合。对于这种情况,决策树模型一般的处理方法就是将决策树模型进行剪枝操作。
  剪纸操作分为两种,一种是前剪枝,一种是后剪枝。
  前剪枝:在生成决策树的过程中剪枝。在决策树完全分类完成前就进行剪枝操作。这种剪枝一般通过调整

  1. 决策树的深度,
  2. 节点中最少多少了样本点就不在分裂,
  3. 计算每次分裂的准确率,当准确率的提升小于某个阀值时就停止分裂。

  采用前剪枝距有算法简单,效率高等特点,适合解决大规模问题。
  但无法准确的估计合适的阀值以停止决策树的生长,需要一定的经验判断;同时存在欠拟合的风险(因为根据贪心算法,当先节点的准确率提高小,可能后续节点的准确率提高大)。

  后剪枝:后剪枝是在生成完整的决策树后,判断每个节点的对准确率的贡献有多少,贡献小的节点就会被剪枝。这样导致的优点是因为需要生成完整的决策树然后剪枝,时间开销大。但能得到泛化能力更强的决策树。
  决策树的剪枝算法包括多种,下面以CART采用的剪枝算法CCP(代价复杂度剪枝)。

CCP算法

  CCP(代价复杂度剪枝)它是通过计算剪枝前后对错误率的影响之间的比较,确定是否该节点可以剪枝。

  1. 按照投票法划分每个节点的属性,该节点与划分属性不一致的就是错误的数目,计算划分前该节点的错误数,如果不剪枝后续产生的最小错误的数目(一直分裂到最后,产生的错误数)。
  2. 为了排除该节点后续的叶子数目多少对错误的影响,(该节点对应的叶子节点数目越多,那么说明越不确定),为了排除这种影响,我们除以该结点后续产生的叶子节点的数目-1。如果产生的节点只有一个那就不存在分支,该节点就是叶子节点。

  计算例子如下:
在这里插入图片描述
注:从左到右,从上到下( t 0 , t 2 , t 1 , t 5 , t 6 , t 3 , t 4 , t 7 , t 8 , t 9 , t 10 t_0,t_2,t_1,t_5,t_6,t_3,t_4,t_7,t_8,t_9,t_{10} t0,t2,t1,t5,t6,t3,t4,t7,t8,t9,t10)

  在图中间可以剪枝的是 t 0 , t 2 , t 1 , t 3 , t 4 t_0,t_2,t_1,t_3,t_4 t0,t2,t1,t3,t4,因为只有他们后面才有子节点。

   t 0 t_0 t0被划分为A 类,错误数为25。 t 2 , t 3 t_2,t_3 t2,t3的类别为B类和A类,错误数为5和10,从 t 0 t_0 t0产生的叶子节点个数为6个。

  误差增加率为:
   α ( t 0 ) = 25 − ( 1 + 1 + 1 + 2 ) 6 − 1 = 4 \alpha(t_0) = \frac{25-(1+1+1+2)} {6-1} =4 α(t0)=6125(1+1+1+2)=4

   α ( t 2 ) = 5 − ( 1 + 1 ) 2 − 1 = 3 \alpha(t_2) = \frac{5-(1+1)} {2-1} =3 α(t2)=21

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值