决策树的补充:剪枝与CART树

1.剪枝:

  • 预剪枝:对每个节点划分前先进行估计,若当前节点的划分不能带来决策树泛化能力的提升,则停止划分,并将当前节点标记为叶节点(当划分前的性能跟划分后的一样,则也不划分)
  • 后剪枝:先从训练集生成一颗完整的决策树,然后自底向上的对非叶节点进行考察,若将该节点对应的子树替换为叶节点能带来性能上的提升,则将子树替换为叶节点(当替换前与替换后性能相同,则保留不进行替换)

    预剪枝显著减少了决策树的训练时间,但另一方面,预剪枝本质上禁止这些分支展开,所以可能带来欠拟合的风险。通常采用留出法进行验证,将一部分训练集划分为验证集。

    后剪枝决策树的欠拟合风险小,泛化能力往往优于预剪枝,但是后剪枝过程是在生成决策树之后进行的,所以训练时间肯定比预     剪枝高出很多。

2.CART树:

  • 分类树的生成

基尼值:Gini(D) = 1 - \sum p_k^2

集合D的特征A的某一取值a(切分点)被分割成D_1 ,D_2 = D - D_1 两部分,则在条件A下a的基尼指数定义为:

Gini index(D,a) = \frac{\left | D_1 \right |}{\left | D \right |}Gini(D_1) + \frac{\left | D_2 \right |}{\left | D \right |}Gini(D_2)

基尼指数越小越好,越小表明纯度越高,计算出所有的切分点,选择最小的做为最优切分点,重复这样的操作,当样本个数小于预定阈值或者样本集的基尼指数小于预定阈值(样本基本属于同一类),或者没有更多特征,停止计算

  • 回归树的生成:

同样的寻找最小切分点,不过回归树使用的是最小二乘法

首先有5个变量需要明确:s、R1、R2、c1、c2 

其中:R_1\begin{Bmatrix} x|x\leq s \end{Bmatrix},R_2\begin{Bmatrix} x|x> s \end{Bmatrix}

c_1 = \frac{1}{N_1}\sum _{x_i\euro R_1}y_i ,c_2 = \frac{1}{N_2}\sum _{x_i\euro R_2}y_i

s = 所有的间隙,比如 1与2的间隙为1.5,2与3的间隙是2.5

m(s)=\underset{c_1}{min} \sum_{x_i\euro R_1}(y_i-c_1)^2+\underset{c_2}{min} \sum_{x_i\euro R_1}(y_i-c_2)^2

求得不同的s产生的m(s),得到最小的m(s)时:

T_1(x) = \begin{Bmatrix} c_1,x<s \\ c_2,x\geq s \end{matrix}

f_1(x) = T_1(x)

然后计算残差:r = y_i - f_1(x_i)

得到的残差有两个用处:

第一计算平方损失误差,当损失误差小于某个数后就可以停止向下传递:

L(y,f_1(x)) = \sum _{i = 1}(y_i - f_1(x_i))^2

第二利用残差作为我们新的y,以便后续继续进行T2(x),T3(x).....

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值