提升树(实例)
已知训练数据如上表所示,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[e1minxi∈R1∑(yi−c1)2+e2minxi∈R2∑(yi−c2)2]
然后求解训练数据的的切分点S,
R
1
=
{
x
∣
x
≤
s
}
,
R
2
=
{
x
∣
x
>
s
}
R_1=\{x|x≤s\} ,R_2=\{x|x>s\}
R1={x∣x≤s},R2={x∣x>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=N11∑xi∈R1yi,
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=N21∑xi∈R2yi,这里
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)=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,
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
<
6.5
8.91
,
x
≥
6.5
T_1 (x)=\begin{cases} 6.24,&x\lt6.5 \\ 8.91,&x\ge6.5 \end{cases}
T1(x)={6.24,8.91,x<6.5x≥6.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=yi−f1(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(yi−f1(xi))2=1.93,以此类推,拟合数据为表中残差。
以上表残差作为初始数据,重复进行计算,可得
T
2
(
x
)
=
{
−
0.52
,
x
<
3.5
0.22
,
x
≥
3.5
T_2 (x)=\begin{cases} -0.52,&x\lt3.5\\ 0.22,&x\ge3.5 \end{cases}
T2(x)={−0.52,0.22,x<3.5x≥3.5,
f
2
(
x
)
=
f
1
(
x
i
)
+
T
2
(
x
)
=
{
5.72
,
x
<
3.5
6.46
,
3.5
≤
x
<
6.5
9.13
,
x
≥
6.5
f_2 (x)= f_1 (x_i )+T_2 (x)=\begin{cases} 5.72,&x\lt3.5\\ 6.46,&3.5\le x\lt6.5\\ 9.13,&x\ge6.5 \end{cases}
f2(x)=f1(xi)+T2(x)=⎩⎪⎨⎪⎧5.72,6.46,9.13,x<3.53.5≤x<6.5x≥6.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(yi−f2(xi))2=0.79