赞
踩
GBDT是BT的一种改进算法。然后,Friedman提出了梯度提升树算法,关键是利用损失函数的负梯度作为提升树残差的近似值。 当使用平方损失时,负梯度就是残差。
树模GBDT初始化
c
c
c为所有标签的均值,即
f
0
(
x
)
f_0(x)
f0(x)。
学习完第一棵树:
Υ
j
1
=
arg
min
⏟
Υ
∑
x
i
∈
R
j
1
L
(
y
i
,
f
0
(
x
i
)
+
Υ
)
\Upsilon_{j 1}=\underbrace{\arg \min }_{\Upsilon} \sum_{x_{i} \in R_{j 1}} L\left(y_{i}, f_{0}\left(x_{i}\right)+\Upsilon\right)
Υj1=Υ
argminxi∈Rj1∑L(yi,f0(xi)+Υ)
Υ
j
1
\Upsilon_{j 1}
Υj1中的
1
1
1表示第一颗树。GBDT已知
Υ
\Upsilon
Υ, 然后最小化这个值求树的划分。使损失最小的树的划分。
学习完所有树:
f
(
x
)
=
f
M
(
x
)
=
f
0
(
x
)
+
l
r
∗
∑
m
=
1
M
∑
j
=
1
J
Υ
j
m
I
(
x
∈
R
j
m
)
f(x)=f_{M}(x)=f_{0}(x)+lr*\sum_{m=1}^{M} \sum_{j=1}^{J} \Upsilon_{j m} I\left(x \in R_{j m}\right)
f(x)=fM(x)=f0(x)+lr∗m=1∑Mj=1∑JΥjmI(x∈Rjm)
使用
l
r
lr
lr可以防止过拟合。
Υ
j
m
\Upsilon_{j m}
Υjm是叶子节点的值,
I
I
I表示预测值是否属于这个节点,属于为1,不属于为0。
f
0
(
x
)
f_0(x)
f0(x)是一个基(标签的均值),后续学的都是残差。1和0的计算需要将样本带入树中计算得到。叶子节点的数值表示残差值。树的数量是通过不断迭代产生的。
https://blog.csdn.net/zpalyq110/article/details/79527653(GBDT案例介绍)
https://www.cnblogs.com/always-fight/p/9400346.html
https://www.cnblogs.com/ModifyRong/p/7744987.html
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。