提升树实例

提升树(实例)

原始数据
已知训练数据如上表所示,x的取值范围为区间[0.5,10.5],y的取值范围为区间[5.0,10.0],学习这个回归问题的提升树模型,考虑只用树桩作为基函数。


  既然是一个提升树, f M ( x ) = ∑ m = 1 M T ( x ; θ m ) f_M (x)=\sum_{m=1}^{M}T(x;θ_m ) fM(x)=m=1MT(x;θm),那么第一步需要求 f 1 ( x ) f_1 (x) f1(x),即回归树 T 1 ( x ) T_1 (x) T1(x),首先通过以下优化问题,
min ⁡ s ⁡ [ min ⁡ e 1 ⁡ ∑ x i ∈ R 1 ( y i − c 1 ) 2 + min ⁡ e 2 ∑ x i ∈ R 2 ( y i − c 2 ) 2 ] \min_{s}⁡[\min_{e_1} ⁡\sum_{x_i∈R_1}(y_i-c_1 )^2+\min_{e_2}\sum_{x_i∈R_2}(y_i-c_2 )^2 ] smin[e1minxiR1(yic1)2+e2minxiR2(yic2)2]
  然后求解训练数据的的切分点S, R 1 = { x ∣ x ≤ s } , R 2 = { x ∣ x > s } R_1=\{x|x≤s\} ,R_2=\{x|x>s\} R1={xxs},R2={xx>s},容易求得在 R 1 R_1 R1 R 2 R_2 R2内部使平方损失误差达到最小值的 c 1 c_1 c1 c 2 c_2 c2,分别为 c 1 = 1 N 1 ∑ x i ∈ R 1 y i c_1=\frac{1}{N_1}\sum_{x_i∈R_1}y_i c1=N11xiR1yi, c 2 = 1 N 2 ∑ x i ∈ R 2 y i c_2=\frac{1}{N_2}\sum_{x_i∈R_2}y_i c2=N21xiR2yi,这里 N 1 N_1 N1 N 2 N_2 N2是样本个数。
m ( s ) = min ⁡ e 1 ∑ x i ∈ R 1 ( y i − c 1 ) 2 + min ⁡ e 2 ⁡ ∑ x i ∈ R 2 ( y i − c 2 ) 2 m(s)=\min_{e_1}\sum_{x_i∈R_1}(y_i-c_1 )^2+\min_{e_2}⁡\sum_{x_i∈R_2}(y_i-c_2 )^2 m(s)=e1minxiR1(yic1)2+e2minxiR2(yic2)2
  将上面的想法应用到数据上,考虑切分点:1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5。
  当s=1.5, R 1 R_1 R1={1}, R 2 R_2 R2={2,3,4,5,6,7,8,9,10}, c 1 c_1 c1=5.56, c 2 c_2 c2=7.50, m(s)=0+15.72=15.72;将s和m(s) 计算结果记录。
一次决策分裂数据
  由上表可知,当s=6.5时, m(s)达到最小值,此时 R 1 R_1 R1={1,2,3,4,5,6}, R 2 R_2 R2={7,8,9,10}, c 1 c_1 c1=6.24, c 2 c_2 c2=8.91,所以回归树 T 1 ( x ) = { 6.24 , x &lt; 6.5 8.91 , x ≥ 6.5 T_1 (x)=\begin{cases} 6.24,&amp;x\lt6.5 \\ 8.91,&amp;x\ge6.5 \end{cases} T1(x)={6.248.91x<6.5x6.5,而 f 1 ( 2 ) = T 1 ( x ) f_1 (2)=T_1 (x) f1(2)=T1(x), f 1 ( x i ) f_1 (x_i) f1(xi)拟合训练数据的残差 r 2 i = y i − f 1 ( x i ) r_{2i}=y_i-f_1 (x_i) r2i=yif1(xi),结果如下,
在这里插入图片描述
  使用 f 1 ( x i ) f_1 (x_i) f1(xi)拟合训练数据的平方损失误差: L ( y , f 1 ( x ) ) = ∑ i = 1 10 ( y i − f 1 ( x i ) ) 2 = 1.93 L(y,f_1 (x))= \sum_{i=1}^{10}(y_i-f_1 (x_i))^2=1.93 L(y,f1(x))=i=110(yif1(xi))2=1.93,以此类推,拟合数据为表中残差。
  以上表残差作为初始数据,重复进行计算,可得 T 2 ( x ) = { − 0.52 , x &lt; 3.5 0.22 , x ≥ 3.5 T_2 (x)=\begin{cases} -0.52,&amp;x\lt3.5\\ 0.22,&amp;x\ge3.5 \end{cases} T2(x)={0.520.22x<3.5x3.5, f 2 ( x ) = f 1 ( x i ) + T 2 ( x ) = { 5.72 , x &lt; 3.5 6.46 , 3.5 ≤ x &lt; 6.5 9.13 , x ≥ 6.5 f_2 (x)= f_1 (x_i )+T_2 (x)=\begin{cases} 5.72,&amp;x\lt3.5\\ 6.46,&amp;3.5\le x\lt6.5\\ 9.13,&amp;x\ge6.5 \end{cases} f2(x)=f1(xi)+T2(x)=5.726.469.13x<3.53.5x<6.5x6.5,使用 f 2 ( x i ) f_2 (x_i) f2(xi)拟合训练数据的平方损失误差: L ( y , f 2 ( x ) ) = ∑ i = 1 10 ( y i − f 2 ( x i ) ) 2 = 0.79 L(y,f_2 (x))= \sum_{i=1}^{10}(y_i-f_2 (x_i))^2=0.79 L(y,f2(x))=i=110(yif2(xi))2=0.79

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值