1、提升树的定义
提升树是以分类树或者回归树为基本分类器的提升方法。以决策树为基函数的提升方法称为提升树(boosting tree)
2、与AdaBoost算法的提升方法的区别
提升树算法只需将Adaboost算法的基本分类器限制为二分类树(对于二分类问题而言)即可,可以说提升树是Adaboost算法的特殊情况。
3、回归问题的提升树算法
序号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
x i x_i xi | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
y i y_i yi | 5.56 | 5.70 | 5.91 | 6.40 | 6.80 | 7.05 | 8.90 | 8.70 | 9.00 | 9.05 |
(1)求解数据的切分点
这里的切分点指的是将
x
x
x值划分界限,数据中
x
x
x的范围是
[
1
,
10
]
[1,10]
[1,10],假设我们可取得切分点
s
s
s有
[
1.5
,
2.5
,
3.5
,
.
.
.
,
9.5
]
[1.5,2.5,3.5,...,9.5]
[1.5,2.5,3.5,...,9.5],并且把分界线两边的样本集合记为
R
1
,
R
2
R_1,R_2
R1,R2。假设取1.5的分界线,即
s
=
1.5
s=1.5
s=1.5,那么
R
1
=
{
1
}
,
R
2
=
{
2
,
3
,
.
.
.
,
10
}
R_1=\{1\},R_2=\{2,3,...,10\}
R1={1},R2={2,3,...,10},把
c
1
,
c
2
c_1,c_2
c1,c2记为分界线两边
y
i
y_i
yi的平均值,如公式(1)所示,则
c
1
=
5.56
,
c
2
=
7.50
c_1=5.56,c_2=7.50
c1=5.56,c2=7.50。
c
1
=
1
∣
R
1
∣
∑
x
i
∈
R
1
y
i
c_1=\frac{1}{|R_1|}\sum_{x_i \in R_1}y_i
c1=∣R1∣1xi∈R1∑yi
c
2
=
1
∣
R
2
∣
∑
x
i
∈
R
2
y
i
(1)
c_2=\frac{1}{|R_2|}\sum_{x_i \in R_2}y_i \tag{1}
c2=∣R2∣1xi∈R2∑yi(1)
而我们最终要优化的目标是求分界线两边的数据的
y
ˉ
\bar{y}
yˉ与
y
i
y_i
yi平方和的最小值
m
(
s
)
m(s)
m(s),如公式(2)所示。
m
(
s
)
=
min
c
1
∑
x
i
∈
R
1
(
y
i
−
c
1
)
2
+
min
c
1
∑
x
i
∈
R
2
(
y
i
−
c
2
)
2
(2)
m(s)=\min_{c_1} \sum_{x_i \in R_1}(y_i-c_1)^2+\min_{c_1} \sum_{x_i \in R_2}(y_i-c_2)^2 \tag{2}
m(s)=c1minxi∈R1∑(yi−c1)2+c1minxi∈R2∑(yi−c2)2(2)
(2)求回归树
实际上,对于以上数据求得最佳分界线是 s = 6.5 s=6.5 s=6.5,对应地有 R 1 = { 1 , 2 , . . . , 6 } , R 2 = { 7 , 8 , 9 , 10 } , c 1 = 6.24 , c 2 = 8.91 R_1=\{1,2,...,6\},R_2=\{7,8,9,10\},c_1=6.24,c_2=8.91 R1={1,2,...,6},R2={7,8,9,10},c1=6.24,c2=8.91。所以回归树 T 1 ( x ) T_1(x) T1(x)为
T 1 ( x ) = { 6.24 , x < 6.5 8.91 , x ⩾ 6.5 (3) T_1(x)=\left\{\begin{matrix} 6.24, \qquad x<6.5\\ \\ 8.91, \qquad x\geqslant 6.5\\ \end{matrix}\right. \tag{3} T1(x)=⎩⎨⎧6.24,x<6.58.91,x⩾6.5(3)
(3)求当前加法模型 f 1 ( x ) f_1(x) f1(x)
当前的加法模型为
f
1
=
T
1
(
x
)
(4)
f_1=T_1(x) \tag{4}
f1=T1(x)(4)
(4)求当前加法模型的误差
用 f 1 ( x ) f_1(x) f1(x)拟合训练数据的残差表如下,其中 r 2 i = y i − f 1 ( x i ) , i = 1 , 2 , . . . , 10 r_{2i}=y_i-f_1(x_i),i=1,2,...,10 r2i=yi−f1(xi),i=1,2,...,10
序号 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
---|---|---|---|---|---|---|---|---|---|---|
x i x_i xi | 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 |
用
f
1
(
x
)
f_1(x)
f1(x)拟合训练数据的平方差损失为
L
(
y
,
f
1
(
x
)
)
=
∑
i
=
1
10
(
y
i
−
f
1
(
x
i
)
)
2
=
1.93
(5)
L(y,f_1(x))=\sum_{i=1}^{10}(y_i-f_1(x_i))^2=1.93 \tag{5}
L(y,f1(x))=i=1∑10(yi−f1(xi))2=1.93(5)
这里的误差为1.93,如果我们定义终止时候的误差比这个误差要小,那么算法继续执行以上步骤,直到满足误差为止。
(5)求回归树 T 2 ( x ) T_2(x) T2(x),即用于提升的下一个基本分类器
这里求解过程与求解
T
1
(
x
)
T_1(x)
T1(x)一样,只不过拟合的数据是上上轮中的残差表(因为后面的线性组合分类器是相加的结果),可以得到:
T
2
(
x
)
=
{
−
0.52
,
x
<
3.5
0.22
,
x
⩾
3.5
(6)
T_2(x)=\left\{\begin{matrix} -0.52, \qquad x<3.5\\ \\ 0.22, \qquad x\geqslant 3.5\\ \end{matrix}\right. \tag{6}
T2(x)=⎩⎨⎧−0.52,x<3.50.22,x⩾3.5(6)
即在分界线
s
=
3.5
s=3.5
s=3.5两边的数据的
r
2
i
ˉ
\bar{r_{2i}}
r2iˉ与
r
2
i
r_{2i}
r2i平方和有最小值
m
(
s
)
m(s)
m(s)
(6)求当前加法模型 f 2 ( x ) f_2(x) f2(x)
f
2
=
f
1
+
T
2
(
x
)
=
{
5.72
,
x
<
3.5
6.46
,
3.5
⩽
x
<
6.5
9.13
,
x
⩾
6.5
(6)
f_2=f_1+T_2(x) =\left\{\begin{matrix} 5.72, \qquad x<3.5\\ \\ 6.46, \qquad 3.5\leqslant x<6.5\\ \\ 9.13, \qquad x \geqslant 6.5\\ \end{matrix}\right. \tag{6}
f2=f1+T2(x)=⎩⎪⎪⎪⎪⎨⎪⎪⎪⎪⎧5.72,x<3.56.46,3.5⩽x<6.59.13,x⩾6.5(6)
即
f
1
,
T
2
(
x
)
f_1,T_2(x)
f1,T2(x)的定义域区间重新组合在一起,比如满足关系
x
<
3.5
(
f
1
中
的
约
束
)
和
x
<
6.5
(
T
2
中
的
约
束
)
x<3.5(f_1中的约束)和x<6.5(T_2中的约束)
x<3.5(f1中的约束)和x<6.5(T2中的约束),其结果为
6.24
−
0.52
=
5.72
6.24-0.52=5.72
6.24−0.52=5.72。