CART树的剪枝

CART树剪枝

预剪枝

  • 控制树的深度
  • 设定基尼系数(残差)的阈值,即若当前划分特征的基尼系数(残差)小于阈值时不再对当前的特征进行划分
  • 设定样本量的阈值,样本量小于阈值不再划分

后剪枝

总体思路:

  1. 由完全树T0开始,剪枝部分结点,得到T1,再次剪枝部分结点得到T2。。。知道仅剩树根的树Tk;
  2. 通过交叉验证,对以上k个树分别评价,选择损失函数最小的数Tα

具体过程:

  • 损失函数 

  原来的损失函数,子树的整体损失等于,对于每个叶子节点t,叶子结点t的样本个数再乘以叶子结点t的熵,的加和。   

   在此基础上,加上正则项,损失函数可转化为: 



lTleafl为子树的叶子结点的个数,Cα(T)是参数是α时的子树T的整体损失。参数α权衡训练数据的     拟合程度与模型的复杂度。设定了α就相当于给树剪枝了,保证了不会随着叶结点的增多,让模型复杂。

在真实计算过程中,当α = 0时,相当于不加正则项,也就是相当于未剪枝,也就是表示未剪枝的决策树损失最小;当α = 正无穷时,充分剪枝,造成单根结点的决策树损失最小


  • 剪枝系数

假定当前对以r为根的子树剪枝,可以计算剪枝前和剪枝后的损失函数,令两者相等,可以恰巧求出一个α,让剪枝前剪枝后损失相似,此时的α即为剪枝系数。

表示了剪枝后整体损失函数减少的程度。 



  • 剪枝过程
  1. 对整体树T0,计算内部各个结点的剪枝系数
  2. 查找剪枝系数最小的结点进行剪枝,得到一棵新的决策树
  3. 然后对新的决策树再次计算各个结点的剪枝系数,再剪枝,重复以上步骤,知道只剩一个结点。
  4. 通过以上步骤生成了T0,T1,…Tk决策树
  5. 对这些决策树依次进行交叉验证,选取最优子树Tα 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值