理解xgboost与gbdt区别
Xgboost和gbdt区别
【 Xgboost用了】
- 泰勒公式展开即用到了二阶,普通GBDT(提升树)只用到了一阶
- L1正则化和L2正则化
- 可使用column(feature) sampling来防止过拟合
- 近似寻找分裂节点算法
**
1 Xgboost的多棵树集成概念
tree1和tree2中,男生判断喜欢电脑游戏的概率=2+0.9=2.9
tree1和tree2中,老人判断喜欢电脑游戏的概率=-1-0.9=-1.9
2 Xgboost的学习策略
将已经学习的树固定,每次向其中添加一棵新的树,每次是训练这棵新树的结构和叶子分数
y
^
i
(
0
)
=
0
y
^
i
(
1
)
=
f
1
(
x
i
)
=
y
^
i
(
0
)
+
f
1
(
x
i
)
y
^
i
(
2
)
=
f
1
(
x
i
)
+
f
2
(
x
i
)
=
y
^
i
(
1
)
+
f
2
(
x
i
)
y
^
i
(
3
)
=
f
1
(
x
i
)
+
f
2
(
x
i
)
+
f
3
(
x
i
)
=
y
^
i
(
2
)
+
f
3
(
x
i
)
y
^
i
(
4
)
=
f
1
(
x
i
)
+
f
2
(
x
i
)
+
f
3
(
x
i
)
+
f
4
(
x
i
)
=
y
^
i
(
3
)
+
f
4
(
x
i
)
y
^
i
(
t
)
=
∑
k
=
1
t
f
k
(
x
i
)
=
y
^
i
(
t
−
1
)
+
f
t
(
x
i
)
\begin{aligned} & {\color{red}{\hat{y}_{i}^{(0)}}}=0 \\ & {\color{red}{\hat{y}_{i}^{(1)}}}={{f}_{1}}({{x}_{i}})={\color{red}{\hat{y}_{i}^{(0)}}}+{{f}_{1}}({{x}_{i}}) \\ & {\color{red}{\hat{y}_{i}^{(2)}}}={{f}_{1}}({{x}_{i}})+{{f}_{2}}({{x}_{i}})={\color{red}{\hat{y}_{i}^{(1)}}}+{{f}_{2}}({{x}_{i}}) \\ & {\color{red}{\hat{y}_{i}^{(3)}}}={{f}_{1}}({{x}_{i}})+{{f}_{2}}({{x}_{i}})+{{f}_{3}}({{x}_{i}})={\color{red}{\hat{y}_{i}^{(2)}}}+{{f}_{3}}({{x}_{i}}) \\ & {\color{red}{\hat{y}_{i}^{(4)}}}={{f}_{1}}({{x}_{i}})+{{f}_{2}}({{x}_{i}})+{{f}_{3}}({{x}_{i}})+{{f}_{4}}({{x}_{i}})={\color{red}{\hat{y}_{i}^{(3)}}}+{{f}_{4}}({{x}_{i}}) \\ & {\color{red}{\hat{y}_{i}^{(t)}}}=\sum\limits_{k=1}^{t}{{{f}_{k}}({{x}_{i}})}={\color{red}{\hat{y}_{i}^{(t-1)}}}+{{f}_{t}}({{x}_{i}}) \\ \end{aligned}
y^i(0)=0y^i(1)=f1(xi)=y^i(0)+f1(xi)y^i(2)=f1(xi)+f2(xi)=y^i(1)+f2(xi)y^i(3)=f1(xi)+f2(xi)+f3(xi)=y^i(2)+f3(xi)y^i(4)=f1(xi)+f2(xi)+f3(xi)+f4(xi)=y^i(3)+f4(xi)y^i(t)=k=1∑tfk(xi)=y^i(t−1)+ft(xi)
3 Xgboost的优化函数
3.1 Xgboost原始优化函数
o
b
j
(
t
)
=
∑
i
=
1
n
l
(
y
i
,
y
^
i
(
t
)
)
+
∑
i
=
1
t
Ω
(
f
i
)
=
∑
i
=
1
n
l
(
y
i
,
y
^
i
(
t
−
1
)
+
f
t
(
x
i
)
)
+
Ω
(
f
t
)
+
c
o
n
s
t
a
n
t
\begin{aligned} ob{{j}^{(t)}} &=\sum\limits_{i=1}^{n}{l({{y}_{i}},{\color{red}{\hat{y}_{i}^{(t)}}} )}+\sum\limits_{i=1}^{t}{\Omega ({{f}_{i}})} \\ & =\sum\limits_{i=1}^{n}{l({{y}_{i}},{\color{red}{\hat{y}_{i}^{(t-1)}+{{f}_{t}}({{x}_{i}})}} )}+\Omega ({{f}_{t}})+constant \\ \end{aligned}
obj(t)=i=1∑nl(yi,y^i(t))+i=1∑tΩ(fi)=i=1∑nl(yi,y^i(t−1)+ft(xi))+Ω(ft)+constant
其中
Ω
(
f
t
)
\Omega ({{f}_{t}})
Ω(ft)是正则化项,
t
t
t是第
t
t
t棵树,
n
n
n是第n个数据样本
3.2 选定MSE(均方差)作为损失函数
则原始优化函数变成如下形式(展开):
o
b
j
(
t
)
=
∑
i
=
1
n
l
(
y
i
,
y
^
i
(
t
)
)
+
∑
i
=
1
t
Ω
(
f
i
)
=
∑
i
=
1
n
l
(
y
i
,
y
^
i
(
t
−
1
)
+
f
t
(
x
i
)
)
+
Ω
(
f
t
)
+
c
o
n
s
t
a
n
t
=
∑
i
=
1
n
(
y
i
−
(
y
^
i
(
t
−
1
)
+
f
t
(
x
i
)
)
)
2
+
Ω
(
f
t
)
+
c
o
n
s
t
a
n
t
=
∑
i
=
1
n
(
(
y
^
i
(
t
−
1
)
+
f
t
(
x
i
)
)
−
y
i
)
2
+
Ω
(
f
t
)
+
c
o
n
s
t
a
n
t
=
∑
i
=
1
n
[
(
y
^
i
(
t
−
1
)
−
y
i
)
+
f
t
(
x
i
)
]
2
+
Ω
(
f
t
)
+
c
o
n
s
t
a
n
t
=
∑
i
=
1
n
[
2
(
y
^
i
(
t
−
1
)
−
y
i
)
f
t
(
x
i
)
+
f
t
(
x
i
)
2
]
+
Ω
(
f
t
)
+
c
o
n
s
t
a
n
t
\begin{aligned} ob{{j}^{(t)}} & =\sum\limits_{i=1}^{n}{l({{y}_{i}},{\color{red}{\hat{y}_{i}^{(t)}}} )}+\sum\limits_{i=1}^{t}{\Omega ({{f}_{i}})} \\ & =\sum\limits_{i=1}^{n}{l({{y}_{i}},{\color{red}{\hat{y}_{i}^{(t-1)}+{{f}_{t}}({{x}_{i}})}} )}+\Omega ({{f}_{t}})+constant \\ & =\sum\limits_{i=1}^{n}{({{y}_{i}}-{\color{red}{(\hat{y}_{i}^{(t-1)}+{{f}_{t}}({{x}_{i}})})} )^{2}}+\Omega ({{f}_{t}})+constant \\ & =\sum\limits_{i=1}^{n}{({\color{red}{(\hat{y}_{i}^{(t-1)}+{{f}_{t}}({{x}_{i}})})}-{{y}_{i}} )^{2}}+\Omega ({{f}_{t}})+constant \\ & ={{\sum\limits_{i=1}^{n}{\left[ (\hat{y}_{i}^{(t-1)}-{{y}_{i}})+{{f}_{t}}({{x}_{i}}) \right]}}^{2}}+\Omega ({{f}_{t}})+constant \\ & =\sum\limits_{i=1}^{n}{\left[ 2(\hat{y}_{i}^{(t-1)}-{{y}_{i}}){{f}_{t}}({{x}_{i}})+{{f}_{t}}{{({{x}_{i}})}^{2}} \right]}+\Omega ({{f}_{t}})+constant \\ \end{aligned}
obj(t)=i=1∑nl(yi,y^i(t))+i=1∑tΩ(fi)=i=1∑nl(yi,y^i(t−1)+ft(xi))+Ω(ft)+constant=i=1∑n(yi−(y^i(t−1)+ft(xi)))2+Ω(ft)+constant=i=1∑n((y^i(t−1)+ft(xi))−yi)2+Ω(ft)+constant=i=1∑n[(y^i(t−1)−yi)+ft(xi)]2+Ω(ft)+constant=i=1∑n[2(y^i(t−1)−yi)ft(xi)+ft(xi)2]+Ω(ft)+constant
【注意】
(
y
^
i
(
t
−
1
)
−
y
i
)
2
(\hat{y}_{i}^{(t-1)}-{{y}_{i}})^2
(y^i(t−1)−yi)2是常数项,归并到
c
o
n
s
t
a
n
t
constant
constant
这样函数里存在一阶残差项和平方项。
3.3 直接选定泰勒公式展开
根据
f
(
x
+
Δ
x
)
≈
f
(
x
)
+
f
′
(
x
)
Δ
x
+
1
2
f
′
′
(
x
)
Δ
x
2
f(x+\Delta x)\approx f(x)+{f}'(x)\Delta x+\frac{1}{2}{f}''(x)\Delta {{x}^{2}}
f(x+Δx)≈f(x)+f′(x)Δx+21f′′(x)Δx2:
当
x
=
y
^
i
(
t
−
1
)
=
从
0
到
t
−
1
棵
树
的
累
加
预
测
值
\color{blue}x=\hat{y}_{i}^{(t-1)}=从0到t-1棵树的累加预测值
x=y^i(t−1)=从0到t−1棵树的累加预测值,
Δ
x
=
f
t
(
x
i
)
=
第
t
棵
树
的
函
数
预
测
值
\color{blue}\Delta x={{f}_{t}}({{x}_{i}})=第t棵树的函数预测值
Δx=ft(xi)=第t棵树的函数预测值时:
即:
x
+
Δ
x
=
y
^
i
(
t
−
1
)
+
f
t
(
x
i
)
\color{red}x+\Delta x=\hat{y}_{i}^{(t-1)}+{{f}_{t}}({{x}_{i}})
x+Δx=y^i(t−1)+ft(xi)
即:
f
(
x
+
Δ
x
)
≈
f
(
x
)
+
f
′
(
x
)
Δ
x
+
1
2
f
′
′
(
x
)
Δ
x
2
l
(
y
^
i
(
t
−
1
)
+
f
t
(
x
i
)
)
≈
l
(
y
^
i
(
t
−
1
)
)
+
l
′
(
y
^
i
(
t
−
1
)
)
f
t
(
x
i
)
+
1
2
l
′
′
(
y
^
i
(
t
−
1
)
)
f
t
2
(
x
i
)
≈
f
(
y
^
i
(
t
−
1
)
)
+
g
i
f
t
(
x
i
)
+
1
2
h
i
f
t
2
(
x
i
)
\begin{aligned} f(x+{\color{red}\Delta x}) & \approx f(x)+{f}'(x){\color{red}\Delta x}+\frac{1}{2}{f}''(x){\color{red}\Delta {{x}^{2}}} \\ l(\hat{y}_{i}^{(t-1)}+{\color{red}{{f}_{t}}({{x}_{i}})} ) & \approx l(\hat{y}_{i}^{(t-1)})+{{{{l}'}}}(\hat{y}_{i}^{(t-1)}){\color{red}{{f}_{t}}({{x}_{i}})}+\frac{1}{2}{{{{l}''}}}(\hat{y}_{i}^{(t-1)}){\color{red}{{f}_{t}}^{2}({{x}_{i}})} \\ & \approx f(\hat{y}_{i}^{(t-1)})+{{g}_{i}}{\color{red}{{f}_{t}}({{x}_{i}})}+\frac{1}{2}{{h}_{i}}{\color{red}{{f}_{t}}^{2}({{x}_{i}})} \\ \end{aligned}
f(x+Δx)l(y^i(t−1)+ft(xi))≈f(x)+f′(x)Δx+21f′′(x)Δx2≈l(y^i(t−1))+l′(y^i(t−1))ft(xi)+21l′′(y^i(t−1))ft2(xi)≈f(y^i(t−1))+gift(xi)+21hift2(xi)
其中:
g
i
=
l
′
t
(
y
^
i
(
t
−
1
)
)
h
i
=
l
′
′
t
(
y
^
i
(
t
−
1
)
)
\begin{aligned} & {{g}_{i}}={{{{l}'}}_{t}}(\hat{y}_{i}^{(t-1)}) \\ & {{h}_{i}}={{{{l}''}}_{t}}(\hat{y}_{i}^{(t-1)}) \\ \end{aligned}
gi=l′t(y^i(t−1))hi=l′′t(y^i(t−1))
则
o
b
j
(
t
)
=
∑
i
=
1
n
l
(
y
i
,
y
^
i
(
t
)
)
+
∑
i
=
1
t
Ω
(
f
i
)
=
∑
i
=
1
n
l
(
y
i
,
y
^
i
(
t
−
1
)
+
f
t
(
x
i
)
)
+
Ω
(
f
t
)
+
c
o
n
s
t
a
n
t
=
∑
i
=
1
n
[
l
(
y
i
,
y
^
i
(
t
−
1
)
)
+
g
i
f
t
(
x
i
)
+
1
2
h
i
f
t
2
(
x
i
)
]
+
Ω
(
f
t
)
+
c
o
n
s
t
a
n
t
\begin{aligned} ob{{j}^{(t)}} & =\sum\limits_{i=1}^{n}{l({{y}_{i}},{\color{red}{\hat{y}_{i}^{(t)}}} )}+\sum\limits_{i=1}^{t}{\Omega ({{f}_{i}})} \\ & =\sum\limits_{i=1}^{n}{l({{y}_{i}},{\color{red}{\hat{y}_{i}^{(t-1)}+{{f}_{t}}({{x}_{i}})}} )}+\Omega ({{f}_{t}})+constant \\ & = \sum\limits_{i=1}^{n}{\left[ l({{y}_{i}},\hat{y}_{i}^{(t-1)})+{\color{blue}{g}_{i}}{{f}_{t}}(x_i)+\frac{1}{2}{\color{blue}{h}_{i}}f_{t}^{2}({{x}_{i}}) \right]}+\Omega ({{f}_{t}})+constant \end{aligned}
obj(t)=i=1∑nl(yi,y^i(t))+i=1∑tΩ(fi)=i=1∑nl(yi,y^i(t−1)+ft(xi))+Ω(ft)+constant=i=1∑n[l(yi,y^i(t−1))+gift(xi)+21hift2(xi)]+Ω(ft)+constant
其中:
{
g
i
=
∂
l
(
y
i
,
y
^
i
(
t
−
1
)
)
∂
y
^
i
(
t
−
1
)
h
i
=
∂
2
l
(
y
i
,
y
^
i
(
t
−
1
)
)
∂
(
y
^
i
(
t
−
1
)
)
2
\left\{ \begin{aligned} & {{g}_{i}}=\frac{\partial l({{y}_{i}},\hat{y}_{i}^{(t-1)})}{\partial \color{blue}\hat{y}_{i}^{(t-1)}} \\ & {{h}_{i}}=\frac{{{\partial }^{2}}l({{y}_{i}},\hat{y}_{i}^{(t-1)})}{\partial {{({\color{blue}\hat{y}_{i}^{(t-1)}})}^{2}}} \\ \end{aligned} \right.
⎩⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎧gi=∂y^i(t−1)∂l(yi,y^i(t−1))hi=∂(y^i(t−1))2∂2l(yi,y^i(t−1))
【
注
意
】
y
i
是
实
际
值
,
l
(
y
i
,
y
^
i
(
t
−
1
)
)
是
关
于
y
^
i
(
t
−
1
)
的
函
数
,
则
g
i
是
关
于
y
^
i
(
t
−
1
)
的
一
阶
导
数
\color{red}【注意】y_i是实际值,l({{y}_{i}},\hat{y}_{i}^{(t-1)})是关于\hat{y}_{i}^{(t-1)}的函数,则g_i是关于\hat{y}_{i}^{(t-1)}的一阶导数
【注意】yi是实际值,l(yi,y^i(t−1))是关于y^i(t−1)的函数,则gi是关于y^i(t−1)的一阶导数
因
为
y
^
i
(
t
−
1
)
是
关
于
样
本
点
上
的
从
0
到
t
−
1
棵
树
的
累
加
预
测
值
是
已
知
的
\color{red}因为\hat{y}_{i}^{(t-1)}是关于样本点上的从0到t-1棵树的累加预测值是已知的
因为y^i(t−1)是关于样本点上的从0到t−1棵树的累加预测值是已知的
将
样
本
点
代
入
一
阶
导
函
数
可
求
得
实
际
值
\color{red}将样本点代入一阶导函数可求得实际值
将样本点代入一阶导函数可求得实际值
3.4 第 t t t棵树的函数 f t ( x ) f_t(x) ft(x)
目标函数经过上面推导只依赖:每个样本点在优化函数上的一阶导和二阶导
如下对
f
t
f_t
ft定义如下,树的信息量拆分为结构部分
q
q
q和叶子权重部分
w
w
w:
f
t
(
x
)
=
w
q
(
x
)
f_t(x)=w_q(x)
ft(x)=wq(x)
3.5 树的复杂度(正则化)
Ω
(
f
t
)
=
γ
T
+
1
2
λ
∑
j
=
1
T
w
j
2
\Omega ({{f}_{t}})=\gamma T+\frac{1}{2}\lambda \sum\limits_{j=1}^{T}{w_{j}^{2}}
Ω(ft)=γT+21λj=1∑Twj2
【其中】
T
T
T为叶子个数,
w
j
w_j
wj为叶子的系数(权重)
3.6 用叶子系数表示优化函数
因
为
当
优
化
第
t
棵
树
时
,
y
^
i
(
t
−
1
)
=
从
0
到
t
−
1
棵
树
的
累
加
预
测
值
是
已
知
的
,
且
y
i
是
实
际
值
\color{red}因为当优化第t棵树时,\hat{y}_{i}^{(t-1)}=从0到t-1棵树的累加预测值是已知的,且y_i是实际值
因为当优化第t棵树时,y^i(t−1)=从0到t−1棵树的累加预测值是已知的,且yi是实际值
所
以
∑
i
=
1
n
[
l
(
y
i
,
y
^
i
(
t
−
1
)
)
]
是
已
知
的
,
属
于
常
量
\color{red}所以\sum\limits_{i=1}^{n}{\left[ l({{y}_{i}},\hat{y}_{i}^{(t-1)}) \right]}是已知的,属于常量
所以i=1∑n[l(yi,y^i(t−1))]是已知的,属于常量,且
f
t
(
x
)
=
w
q
(
x
)
f_t(x)=w_q(x)
ft(x)=wq(x),则
o
b
j
(
t
)
=
∑
i
=
1
n
l
(
y
i
,
y
^
i
(
t
)
)
+
∑
i
=
1
t
Ω
(
f
i
)
=
∑
i
=
1
n
l
(
y
i
,
y
^
i
(
t
−
1
)
+
f
t
(
x
i
)
)
+
Ω
(
f
t
)
+
c
o
n
s
t
a
n
t
=
∑
i
=
1
n
[
l
(
y
i
,
y
^
i
(
t
−
1
)
)
+
g
i
f
t
(
x
i
)
+
1
2
h
i
f
t
2
(
x
i
)
]
+
Ω
(
f
t
)
+
c
o
n
s
t
a
n
t
=
∑
i
=
1
n
[
g
i
f
t
(
x
)
+
1
2
h
i
f
t
2
(
x
i
)
]
+
[
γ
T
+
1
2
λ
∑
j
=
1
T
w
j
2
]
+
∑
i
=
1
n
[
l
(
y
i
,
y
^
i
(
t
−
1
)
)
]
+
c
o
n
s
t
a
n
t
=
∑
i
=
1
n
[
g
i
w
q
(
x
i
)
+
1
2
h
i
w
q
(
x
i
)
2
]
+
[
γ
T
+
1
2
λ
∑
j
=
1
T
w
j
2
]
+
c
o
n
s
t
a
n
t
\begin{aligned} ob{{j}^{(t)}} & =\sum\limits_{i=1}^{n}{l({{y}_{i}},{\color{red}{\hat{y}_{i}^{(t)}}} )}+\sum\limits_{i=1}^{t}{\Omega ({{f}_{i}})} \\ & =\sum\limits_{i=1}^{n}{l({{y}_{i}},{\color{red}{\hat{y}_{i}^{(t-1)}+{{f}_{t}}({{x}_{i}})}} )}+\Omega ({{f}_{t}})+constant \\ & = \sum\limits_{i=1}^{n}{\left[ l({{y}_{i}},\hat{y}_{i}^{(t-1)})+{\color{blue}{g}_{i}}{{f}_{t}}(x_i)+\frac{1}{2}{\color{blue}{h}_{i}}f_{t}^{2}({{x}_{i}}) \right]}+\Omega ({{f}_{t}})+constant \\ & = \sum\limits_{i=1}^{n}{\left[ {{g}_{i}}{{f}_{t}}(x)+\frac{1}{2}{{h}_{i}}f_{t}^{2}({{x}_{i}}) \right]}+\left[ \gamma T+\frac{1}{2}\lambda \sum\limits_{j=1}^{T}{w_{j}^{2}} \right]+\sum\limits_{i=1}^{n}{\left[ l({{y}_{i}},\hat{y}_{i}^{(t-1)}) \right]}+constant \\ & = \sum\limits_{i=1}^{n}{\left[ {{g}_{i}}{\color{blue}{w}_{q(x_i)}}+\frac{1}{2}{{h}_{i}}{\color{blue}w_{q(x_i)}^{2}} \right]}+\left[ \gamma T+\frac{1}{2}\lambda \sum\limits_{j=1}^{T}{w_{j}^{2}} \right]+constant \\ \end{aligned}
obj(t)=i=1∑nl(yi,y^i(t))+i=1∑tΩ(fi)=i=1∑nl(yi,y^i(t−1)+ft(xi))+Ω(ft)+constant=i=1∑n[l(yi,y^i(t−1))+gift(xi)+21hift2(xi)]+Ω(ft)+constant=i=1∑n[gift(x)+21hift2(xi)]+[γT+21λj=1∑Twj2]+i=1∑n[l(yi,y^i(t−1))]+constant=i=1∑n[giwq(xi)+21hiwq(xi)2]+[γT+21λj=1∑Twj2]+constant
因
为
n
个
样
本
点
是
落
在
T
个
不
同
叶
子
节
点
上
,
则
可
以
等
价
按
照
不
同
叶
子
节
点
将
所
有
的
n
个
样
本
点
进
行
区
分
\color{red}因为n个样本点是落在T个不同叶子节点上,则可以等价按照不同叶子节点将所有的n个样本点进行区分
因为n个样本点是落在T个不同叶子节点上,则可以等价按照不同叶子节点将所有的n个样本点进行区分,即:
按
T
将
落
在
同
一
叶
子
节
点
上
的
样
本
点
进
行
求
和
\color{blue}按T将落在同一叶子节点上的样本点进行求和
按T将落在同一叶子节点上的样本点进行求和,则:
o
b
j
(
t
)
=
∑
i
=
1
n
l
(
y
i
,
y
^
i
(
t
)
)
+
∑
i
=
1
t
Ω
(
f
i
)
=
∑
i
=
1
n
[
g
i
w
q
(
x
i
)
+
1
2
h
i
w
q
(
x
i
)
2
]
+
[
γ
T
+
1
2
λ
∑
j
=
1
T
w
j
2
]
+
c
o
n
s
t
a
n
t
=
∑
j
=
1
T
[
(
∑
i
∈
I
j
g
i
)
w
j
+
1
2
(
∑
i
∈
I
j
h
i
+
λ
)
w
j
2
]
+
γ
T
=
∑
j
=
1
T
[
G
j
w
j
+
1
2
(
H
j
+
λ
)
w
j
2
]
+
γ
T
\begin{aligned} ob{{j}^{(t)}} & =\sum\limits_{i=1}^{n}{l({{y}_{i}},{\color{red}{\hat{y}_{i}^{(t)}}} )}+\sum\limits_{i=1}^{t}{\Omega ({{f}_{i}})} \\ & = \sum\limits_{i=1}^{n}{\left[ {{g}_{i}}{\color{blue}{w}_{q(x_i)}}+\frac{1}{2}{{h}_{i}}{\color{blue}w_{q(x_i)}^{2}} \right]}+\left[ \gamma T+\frac{1}{2}\lambda \sum\limits_{j=1}^{T}{w_{j}^{2}} \right]+constant \\ & = \sum\limits_{j=1}^{T}{\left[ (\sum\limits_{i\in {{I}_{j}}}{{{g}_{i}}}){{w}_{j}}+\frac{1}{2}(\sum\limits_{i\in {{I}_{j}}}{{{h}_{i}}}\text{+}\lambda )w_{j}^{2} \right]}+\gamma T\\ & = \sum\limits_{j=1}^{T}{\left[ {{G}_{j}}{{w}_{j}}+\frac{1}{2}\text{(}{{H}_{j}}\text{+}\lambda )w_{j}^{2} \right]}+\gamma T \\ \end{aligned}
obj(t)=i=1∑nl(yi,y^i(t))+i=1∑tΩ(fi)=i=1∑n[giwq(xi)+21hiwq(xi)2]+[γT+21λj=1∑Twj2]+constant=j=1∑T⎣⎡(i∈Ij∑gi)wj+21(i∈Ij∑hi+λ)wj2⎦⎤+γT=j=1∑T[Gjwj+21(Hj+λ)wj2]+γT
【注意】
G
i
=
∑
i
∈
I
j
g
i
,
H
i
=
∑
i
∈
I
j
h
i
G_i=\sum\limits_{i\in {{I}_{j}}}{{{g}_{i}}}, H_i=\sum\limits_{i\in {{I}_{j}}}{{{h}_{i}}}
Gi=i∈Ij∑gi,Hi=i∈Ij∑hi,
I
j
是
没
落
在
第
j
个
叶
子
节
点
上
的
所
有
样
本
点
集
合
\color{red}\boldsymbol{I_j是没落在第j个叶子节点上的所有样本点集合}
Ij是没落在第j个叶子节点上的所有样本点集合
最终目标函数变成了
T
T
T个相互独立的单变量二阶二次函数
3.7 优化函数最小时的最优值
使用拉格朗日定理,让目标函数最小,对上面求偏导:
∂
o
b
j
(
t
)
∂
w
j
=
G
j
+
(
H
j
+
λ
)
w
j
=
0
求
得
:
w
j
=
−
G
j
H
j
+
λ
\frac{\partial ob{{j}^{(t)}}}{\partial {{w}_{j}}}={{G}_{j}}+({{H}_{j}}+\lambda ){{w}_{j}}=0 \\ 求得: {{w}_{j}}\text{=}-\frac{{{G}_{j}}}{{{H}_{j}}+\lambda }
∂wj∂obj(t)=Gj+(Hj+λ)wj=0求得:wj=−Hj+λGj
则目标函数的最小优化值
转换为:
o
b
j
(
t
)
=
−
1
2
∑
j
=
1
T
G
j
2
H
j
+
λ
+
γ
T
=
−
1
2
G
T
2
H
T
+
λ
+
γ
T
\begin{aligned} ob{{j}^{(t)}} & =-\frac{1}{2}\sum\limits_{j=1}^{T}{\frac{G_{j}^{2}}{{{H}_{j}}+\lambda }}+\gamma T \\ & = -\frac{1}{2}{\frac{G_{T}^{2}}{{{H}_{T}}+\lambda }}+\gamma T \end{aligned}
obj(t)=−21j=1∑THj+λGj2+γT=−21HT+λGT2+γT
【当所求的
o
b
j
(
t
)
obj^{(t)}
obj(t)满足上公式的
f
t
f_t
ft时,是第
t
t
t棵树的最佳结构】
3.8 Xgboost的增益
有了最佳目标函数,就可以用划分左右的子棵树的最佳优化函数值的增益对比:
G
a
i
n
=
1
2
[
G
L
2
H
L
+
λ
+
G
R
2
H
L
+
λ
−
(
G
L
+
G
R
)
2
H
L
+
H
R
+
λ
]
−
γ
Gain=\frac{1}{2}\left[ \frac{G_{L}^{2}}{{{H}_{L}}+\lambda }+\frac{G_{R}^{2}}{{{H}_{L}}+\lambda }-\frac{{{({{G}_{L}}+{{G}_{R}})}^{2}}}{{{H}_{L}}+{{H}_{R}}+\lambda } \right]-\gamma
Gain=21[HL+λGL2+HL+λGR2−HL+HR+λ(GL+GR)2]−γ
Reference
陈天奇原始BoostedTree.pdf
XGBoost原理及公式推导(参考官网文档)
XGBoost基本原理
机器学习算法中 GBDT 和 XGBOOST 的区别有哪些?