提升树(实例)
已知训练数据如上表所示,x的取值范围为区间[0.5,10.5],y的取值范围为区间[5.0,10.0],学习这个回归问题的提升树模型,考虑只用树桩作为基函数。
解
既然是一个提升树,
fM(x)=∑m=1MT(x;θm),那么第一步需要求
f1(x),即回归树
T1(x),首先通过以下优化问题,
smin[e1minxi∈R1∑(yi−c1)2+e2minxi∈R2∑(yi−c2)2]
然后求解训练数据的的切分点S,
R1={x∣x≤s},R2={x∣x>s},容易求得在
R1和
R2内部使平方损失误差达到最小值的
c1和
c2,分别为
c1=N11∑xi∈R1yi,
c2=N21∑xi∈R2yi,这里
N1,
N2是样本个数。
m(s)=e1minxi∈R1∑(yi−c1)2+e2minxi∈R2∑(yi−c2)2
将上面的想法应用到数据上,考虑切分点:1.5,2.5,3.5,4.5,5.5,6.5,7.5,8.5,9.5。
当s=1.5,
R1={1},
R2={2,3,4,5,6,7,8,9,10},
c1=5.56,
c2=7.50, m(s)=0+15.72=15.72;将s和m(s) 计算结果记录。
由上表可知,当s=6.5时, m(s)达到最小值,此时
R1={1,2,3,4,5,6},
R2={7,8,9,10},
c1=6.24,
c2=8.91,所以回归树
T1(x)={6.24,8.91,x<6.5x≥6.5,而
f1(2)=T1(x),
f1(xi)拟合训练数据的残差
r2i=yi−f1(xi),结果如下,
使用
f1(xi)拟合训练数据的平方损失误差:
L(y,f1(x))=∑i=110(yi−f1(xi))2=1.93,以此类推,拟合数据为表中残差。
以上表残差作为初始数据,重复进行计算,可得
T2(x)={−0.52,0.22,x<3.5x≥3.5,
f2(x)=f1(xi)+T2(x)=⎩⎪⎨⎪⎧5.72,6.46,9.13,x<3.53.5≤x<6.5x≥6.5,使用
f2(xi)拟合训练数据的平方损失误差:
L(y,f2(x))=∑i=110(yi−f2(xi))2=0.79