提升树
提升树是以分类树或回归树为基本分类器的提升方法
1、提升树模型
以决策树为基函数的提升方法称为提升树,对分类问题决策树是二叉分类树,对回归问题决策树是二叉回归树。提升树模型可以表示为决策树的加法模型:
fM(x)=∑m=1MT(x;Θm)
f
M
(
x
)
=
∑
m
=
1
M
T
(
x
;
Θ
m
)
其中,
T(x;Θm)
T
(
x
;
Θ
m
)
表示决策树;
Θm
Θ
m
为决策树的参数;
M
M
为树的个数。
2、提升树算法
首先确定初始提升树 ,第m步的模型是:
fm(x)=fm−1(x)+T(x;Θm)
f
m
(
x
)
=
f
m
−
1
(
x
)
+
T
(
x
;
Θ
m
)
通过经验风险极小化来确定下一棵决策树的参数:
Θˆm=argminΘm∑i=1NL(yi,fm−1(xi)+T(xi;Θm))
Θ
^
m
=
arg
min
Θ
m
∑
i
=
1
N
L
(
y
i
,
f
m
−
1
(
x
i
)
+
T
(
x
i
;
Θ
m
)
)
(1)回归问题的提升树
回归树的模型为:
T(x;Θm)=∑j=1JcjI(x∈Rj)
T
(
x
;
Θ
m
)
=
∑
j
=
1
J
c
j
I
(
x
∈
R
j
)
参数更新同上,只不过,采用了平方误差损失函数,其损失为:
L(y,fm−1(x)+T(x;Θm)) =[y−fm−1(x)−T(x;Θm)]2 =[r−T(x;Θm)]2
L
(
y
,
f
m
−
1
(
x
)
+
T
(
x
;
Θ
m
)
)
=
[
y
−
f
m
−
1
(
x
)
−
T
(
x
;
Θ
m
)
]
2
=
[
r
−
T
(
x
;
Θ
m
)
]
2
此时,
y−fm−1(x)
y
−
f
m
−
1
(
x
)
是模型拟合数据的残差,对于回归问题来说,拟合这个残差是相当简单的。
3、梯度提升
其关键在于利用损失函数的负梯度在当前模型的值
−[∂L(y,f(xi))∂f(xi)]f(x)=fm−1(x)
−
[
∂
L
(
y
,
f
(
x
i
)
)
∂
f
(
x
i
)
]
f
(
x
)
=
f
m
−
1
(
x
)
作为回归问题提升树算法中的残差的近似值,拟合一个回归树
步骤:
(1)初始化:
f0(x)=argminc∑i=1NL(yi,c)
f
0
(
x
)
=
arg
min
c
∑
i
=
1
N
L
(
y
i
,
c
)
(2)计算残差:
rmi=−[∂L(y,f(xi))∂f(xi)]f(x)=fm−1(x)
r
m
i
=
−
[
∂
L
(
y
,
f
(
x
i
)
)
∂
f
(
x
i
)
]
f
(
x
)
=
f
m
−
1
(
x
)
(3)对残差拟合回归树
(4)计算:
cmj=argminc∑xi∈RmjL(yi,fm−1(xi)+c)
c
m
j
=
arg
min
c
∑
x
i
∈
R
m
j
L
(
y
i
,
f
m
−
1
(
x
i
)
+
c
)
(5)更新
fm(x)=fm−1(x)+∑j=1JcmjI(x∈Rmj)
f
m
(
x
)
=
f
m
−
1
(
x
)
+
∑
j
=
1
J
c
m
j
I
(
x
∈
R
m
j
)
(6)得到回归树
fˆ(x)=fM(x)=∑m=1M∑j=1JcmjI(x∈Rmj)
f
^
(
x
)
=
f
M
(
x
)
=
∑
m
=
1
M
∑
j
=
1
J
c
m
j
I
(
x
∈
R
m
j
)