统计学习方法 8.4
训练过程| x i x_i xi | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|
| y i y_i yi | 5.56 | 5.7 | 5.91 | 6.4 | 6.8 | 7.05 | 8.9 | 8.7 | 9.0 | 9.05 |
PS. 当loss选择MSE时, f 0 ( x ) = y ˉ f_0(x)=bar{y} f0(x)=yˉ, y ˉ bar{y} yˉ为样本真实值的平均值。这边为了和书上统一用 f 0 ( x i ) = 0 f_0(x_i)=0 f0(xi)=0。
拟合第一颗树(m=1)
由公式,可以计算负梯度值:
r
m
i
=
−
[
∂
L
(
y
i
,
f
m
−
1
(
x
i
)
)
∂
f
m
−
1
(
x
i
)
]
=
(
y
i
−
f
m
−
1
(
x
i
)
)
r_{mi}=-left[frac{partial L(y_i,f_{m-1}(x_i))}{partial f_{m-1}(x_i)}right]=(y_i-f_{m-1}(x_i))
rmi=−[∂fm−1(xi)∂L(yi,fm−1(xi))]=(yi−fm−1(xi))
r
1
i
=
y
i
−
f
0
(
x
i
)
r_{1i}=y_i-f_0(x_i)
r1i=yi−f0(xi)
例如:
r
1
i
=
5.56
−
0
=
5.56
r_{1i}=5.56-0=5.56
r1i=5.56−0=5.56
具体结果如下残差表:
| i i i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|
| r 1 i r_{1i} r1i | 5.56 | 5.7 | 5.91 | 6.4 | 6.8 | 7.05 | 8.9 | 8.7 | 9.0 | 9.05 |
得到梯度值后,下面就是以
r
1
i
r_{1i}
r1i为目标值进行拟合。
即选择分裂点,将结点分到两片叶子
R
1
,
R
2
R_1, R_2
R1,R2上,使得各片叶子内部所有样本MSE(书上是L2范数损失函数,也就是没有除以样本数)之和最小。
例如选择分裂点1.5,则在1和2之间分裂,
R
1
=
{
x
1
}
,
R
2
=
{
x
2
,
x
3
,
.
.
.
,
x
10
}
R_1={x_1}, R_2={x_2, x_3, ..., x_{10}}
R1={x1},R2={x2,x3,...,x10},设R中样本平均数是c。
c
1
=
x
1
c_1=x_1
c1=x1
M
S
E
R
1
=
(
x
1
−
c
1
)
2
1
=
0
MSE_{R_1}= frac{(x_1-c_1)^2}{1}=0
MSER1=1(x1−c1)2=0
c
2
=
x
2
+
x
3
+
.
.
.
+
x
10
9
=
7.50111
c_2=frac{x_2+x_3+...+x_{10}}{9}=7.50111
c2=9x2+x3+...+x10=7.50111
M
S
E
R
2
=
(
x
2
−
c
2
)
2
+
(
x
3
−
c
2
)
2
+
.
.
.
+
(
x
10
−
c
2
)
2
9
=
15.7231
/
9
=
1.74701
MSE_{R_2}=frac{(x_2-c_2)^2+(x_3-c_2)^2+...+(x_{10}-c_2)^2}{9}=15.7231/9=1.74701
MSER2=9(x2−c2)2+(x3−c2)2+...+(x10−c2)2=15.7231/9=1.74701
例如选择分裂点6.5,则在6和7之间分裂,
R
1
=
{
x
1
,
x
2
,
.
.
.
,
x
6
}
,
R
2
=
{
x
7
,
x
8
,
x
9
,
x
10
}
R_1={x_1,x_2,...,x_6}, R_2={x_7, x_8, x_9, x_{10}}
R1={x1,x2,...,x6},R2={x7,x8,x9,x10}
c
1
=
x
1
+
x
2
+
.
.
.
+
x
6
6
=
6.23667
c_1=frac {x_1+x_2+...+x_6}{6}=6.23667
c1=6x1+x2+...+x6=6.23667
M
S
E
R
1
=
(
x
1
−
c
1
)
2
+
(
x
2
−
c
1
)
2
+
.
.
.
+
(
x
6
−
c
1
)
2
6
=
1.85813
/
6
=
0.309689
MSE_{R_1}= frac{(x_1-c_1)^2+(x_2-c_1)^2+...+(x_{6}-c_1)^2}{6}=1.85813/6=0.309689
MSER1=6(x1−c1)2+(x2−c1)2+...+(x6−c1)2=1.85813/6=0.309689
c
2
=
x
7
+
x
8
+
x
9
+
x
10
9
=
8.9125
c_2=frac{x_7+x_8+x_9+x_{10}}{9}=8.9125
c2=9x7+x8+x9+x10=8.9125
M
S
E
R
2
=
(
x
7
−
c
2
)
2
+
(
x
8
−
c
2
)
2
+
(
x
9
−
c
2
)
2
+
(
x
10
−
c
2
)
2
4
=
0.071875
/
9
=
0.0179688
MSE_{R_2}=frac{(x_7-c_2)^2+(x_8-c_2)^2+(x_9-c_2)^2+(x_{10}-c_2)^2}{4}=0.071875/9=0.0179688
MSER2=4(x7−c2)2+(x8−c2)2+(x9−c2)2+(x10−c2)2=0.071875/9=0.0179688
| 分裂点 | 1.5 | 2.5 | 3.5 | 4.5 | 5.5 | 6.5 | 7.5 | 8.5 | 9.5 |
|---|---|---|---|---|---|---|---|---|---|
| MSE | 1.74701 | 1.5141 | 1.20691 | 0.996369 | 0.782264 | 0.327658 | 1.15791 | 1.46739 | 1.74873 |
可以看到选分裂点6.5更好。
求出两个叶子结点输出的值,分别是
c
1
=
6.23667
c_1=6.23667
c1=6.23667和
c
2
=
8.9125
c_2=8.9125
c2=8.9125
此时回归树
T
1
(
x
)
T_1(x)
T1(x)为
T
1
(
x
)
=
{
6.24
,
x
<
6.5
8.91
,
x
≥
6.5
T_1(x)= begin{cases} 6.24, & text {$x<6.5$} \ 8.91, & text{$xgeq6.5$} end{cases}
T1(x)={6.24,8.91,x<6.5x≥6.5
模型
f
1
(
x
)
=
T
1
(
x
)
f_1(x)=T_1(x)
f1(x)=T1(x)
此时用
f
1
(
x
)
f_1(x)
f1(x)拟合训练数据的损失MSE为:
L
(
y
,
f
1
(
x
)
)
=
∑
i
=
1
10
(
y
i
−
f
1
(
x
i
)
)
2
10
=
0.193
L(y,f_1(x))=frac{sum_{i=1}^{10}(y_i-f_1(x_i))^2}{10}=0.193
L(y,f1(x))=10∑i=110(yi−f1(xi))2=0.193
这时候假如来了一个新样本x=6,则会通过决策树1输出6.24。
拟合第一颗树(m=2)
用
f
1
(
x
)
f_1(x)
f1(x)拟合训练数据的计算残差如下,
r
2
i
=
y
i
−
f
1
(
x
i
)
r_{2i}=y_i-f_1(x_i)
r2i=yi−f1(xi):
如
r
21
=
5.56
−
6.24
≈
−
0.68
r_{21}=5.56-6.24approx-0.68
r21=5.56−6.24≈−0.68
| i i i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|
| r 2 i r_{2i} r2i | -0.68 | -0.54 | -0.33 | 0.16 | 0.56 | 0.81 | -0.01 | -0.21 | 0.09 | 0.14 |
以
r
2
i
r_{2i}
r2i为目标值进行拟合。
注意,决策树训练的数据是
r
2
i
r_{2i}
r2i
| 分裂点 | 1.5 | 2.5 | 3.5 | 4.5 | 5.5 | 6.5 | 7.5 | 8.5 | 9.5 |
|---|---|---|---|---|---|---|---|---|---|
| MSE | 0.157536 | 0.129036 | 0.124746 | 0.222069 | 0.331568 | 0.327658 | 0.289342 | 0.237525 | 0.212 |
可以看到是分裂点3.5最优。
求出两个叶子结点输出的值,分别是
c
1
=
−
0.68
−
0.54
−
0.33
3
=
−
0.52
c_1=frac{-0.68-0.54-0.33}3=-0.52
c1=3−0.68−0.54−0.33=−0.52
c
2
=
0.16
+
0.56
+
.
.
.
+
0.14
7
=
0.22
c_2=frac{0.16+0.56+...+0.14}7=0.22
c2=70.16+0.56+...+0.14=0.22
此时回归树
T
2
(
x
)
T_2(x)
T2(x)为
T
2
(
x
)
=
{
−
0.52
,
x
<
3.5
0.22
,
x
≥
3.5
T_2(x)= begin{cases} -0.52, & text {$x<3.5$} \ 0.22, & text{$xgeq3.5$} end{cases}
T2(x)={−0.52,0.22,x<3.5x≥3.5
模型
f
2
(
x
)
=
f
1
(
x
)
+
T
2
(
x
)
f_2(x)=f_1(x)+T_2(x)
f2(x)=f1(x)+T2(x)
f
2
(
x
)
=
f
1
(
x
)
+
T
2
(
x
)
=
{
6.24
−
0.52
=
5.72
,
x
<
3.5
6.24
+
0.22
=
6.46
,
3.5
≤
x
<
6.5
8.91
+
0.22
=
9.13
,
x
≥
6.5
f_2(x)=f_1(x)+T_2(x)= begin{cases} 6.24-0.52=5.72, & text {$x<3.5$} \ 6.24 + 0.22=6.46, & text{$3.5leq x<6.5$} \ 8.91+0.22=9.13, & text{$xgeq6.5$} end{cases}
f2(x)=f1(x)+T2(x)=⎩⎪⎨⎪⎧6.24−0.52=5.72,6.24+0.22=6.46,8.91+0.22=9.13,x<3.53.5≤x<6.5x≥6.5
此时用
f
2
(
x
)
f_2(x)
f2(x)拟合训练数据的损失MSE为:
L
(
y
,
f
2
(
x
)
)
=
∑
i
=
1
10
(
y
i
−
f
2
(
x
i
)
)
2
10
=
0.079
L(y,f_2(x))=frac{sum_{i=1}^{10}(y_i-f_2(x_i))^2}{10}=0.079
L(y,f2(x))=10∑i=110(yi−f2(xi))2=0.079
这时候假如来了一个新样本x=6,则先通过决策树1输出6.24,再加上决策树2的输出0.22,预测值为6.46。
拟合第三颗树(m=3)
用
f
2
(
x
)
f_2(x)
f2(x)拟合训练数据的计算残差如下,
r
3
i
=
y
i
−
f
2
(
x
i
)
r_{3i}=y_i-f_2(x_i)
r3i=yi−f2(xi):
如
r
31
=
5.56
−
5.72
=
−
0.16
r_{31}=5.56-5.72=-0.16
r31=5.56−5.72=−0.16
r
33
=
5.91
−
5.72
=
0.19
r_{33}=5.91-5.72=0.19
r33=5.91−5.72=0.19
r
34
=
6.4
−
6.46
=
−
0.06
r_{34}=6.4-6.46=-0.06
r34=6.4−6.46=−0.06
r
36
=
7.05
−
6.46
=
0.59
r_{36}=7.05-6.46=0.59
r36=7.05−6.46=0.59
r
37
=
8.9
−
9.13
=
−
0.23
r_{37}=8.9-9.13=-0.23
r37=8.9−9.13=−0.23
| i i i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|
| r 3 i r_{3i} r3i | -0.16 | -0.02 | 0.19 | -0.06 | 0.34 | 0.59 | -0.23 | -0.43 | -0.13 | -0.08 |
以
r
3
i
r_{3i}
r3i为目标值进行拟合。
注意,决策树训练的数据是
r
3
i
r_{3i}
r3i
接下去步骤同上。



