集成学习:
1.boosting AdaBoost boosting tree(GBDT)
2.bagging ramdon forest
AdaBoost:向前分布算法 弱分类器自行选择 用前一轮迭代的误差率来更新迭代下一轮的权重
GBDT:向前分布算法 用cart tree作为基分类器,迭代方式有所不同
迭代方式不同之处
Adaboost利用前一轮模型的结果更新下一轮样本的权重,然后对样本极小化加权错误率得到下一轮的弱学习器,再极小化损失函数的得到弱学习器的系数。GBDT则通过梯度下降法得到模型下一步增加减小的大小,再通过CART树拟合要增加减小的大小得到模型下一轮增加的弱学习器。
GBDT算法:
设损失数为
L
(
y
,
f
(
x
)
)
L(y,f(x))
L(y,f(x)),当前迭代得到的模型为
f
m
(
x
)
f_{m}(x)
fm(x),现在求下一轮弱学习器
G
m
(
x
)
G_{m}(x)
Gm(x)
总体损失为在每个样本上的损失求和
∑
i
=
1
N
L
(
y
i
,
f
m
(
x
i
)
)
\sum_{i=1}^{N}L(y_{i},f_{m}(x_{i}))
i=1∑NL(yi,fm(xi))
对每个样本
(
x
i
,
y
i
)
(x_{i},y_{i})
(xi,yi),损失为
L
(
y
i
,
f
m
(
x
i
)
)
L(y_{i},f_{m}(x_{i}))
L(yi,fm(xi))
接下来我们想知道
f
m
(
x
i
)
f_{m}(x_{i})
fm(xi)的怎么变化会使损失
L
(
y
i
,
f
m
(
x
i
)
)
L(y_{i},f_{m}(x_{i}))
L(yi,fm(xi))减小,故对
L
(
y
i
,
f
m
(
x
i
)
)
L(y_{i},f_{m}(x_{i}))
L(yi,fm(xi))在
f
m
(
x
i
)
f_{m}(x_{i})
fm(xi)附近进行泰勒展开,设变化大小为
r
m
+
1
,
i
r_{m+1,i}
rm+1,i,则
L
(
y
i
,
f
m
(
x
i
)
+
r
m
+
1
,
i
)
=
L
(
y
i
,
f
m
(
x
i
)
)
+
∂
L
∂
f
(
x
i
)
∣
f
(
x
i
)
=
f
m
(
x
i
)
r
m
+
1
,
i
+
o
(
r
m
+
1
,
i
)
L(y_{i},f_{m}(x_{i})+r_{m+1,i})=L(y_{i},f_{m}(x_{i}))+\frac{\partial L}{\partial f(x_{i})}|_{f(x_{i})=f_{m}(x_{i})}~r_{m+1,i}+o(r_{m+1,i})
L(yi,fm(xi)+rm+1,i)=L(yi,fm(xi))+∂f(xi)∂L∣f(xi)=fm(xi) rm+1,i+o(rm+1,i)
当
r
m
+
1
,
i
r_{m+1,i}
rm+1,i足够小时
L
(
y
i
,
f
m
(
x
i
)
+
r
m
+
1
,
i
)
≈
L
(
y
i
,
f
m
(
x
i
)
)
+
∂
L
∂
f
(
x
i
)
∣
f
(
x
i
)
=
f
m
(
x
i
)
r
m
+
1
,
i
L(y_{i},f_{m}(x_{i})+r_{m+1,i})\approx L(y_{i},f_{m}(x_{i}))+\frac{\partial L}{\partial f(x_{i})}|_{f(x_{i})=f_{m}(x_{i})}~r_{m+1,i}
L(yi,fm(xi)+rm+1,i)≈L(yi,fm(xi))+∂f(xi)∂L∣f(xi)=fm(xi) rm+1,i
这里是
X
G
B
o
o
s
t
XGBoost
XGBoost和
G
B
D
T
GBDT
GBDT在算法上的区别之一,即
X
G
B
o
o
s
t
XGBoost
XGBoost用到二阶泰勒展开,而
G
B
D
T
GBDT
GBDT只用到一阶泰勒展开。
当
r
m
+
1
,
i
r_{m+1,i}
rm+1,i符号和
∂
L
∂
f
(
x
i
)
∣
f
(
x
i
)
=
f
m
(
x
i
)
\frac{\partial L}{\partial f(x_{i})}|_{f(x_{i})=f_{m}(x_{i})}
∂f(xi)∂L∣f(xi)=fm(xi)相反,且大小合适时,
L
(
y
i
,
f
m
(
x
i
)
+
r
m
+
1
,
i
)
<
L
(
y
i
,
f
m
(
x
i
)
)
L(y_{i},f_{m}(x_{i})+r_{m+1,i})<L(y_{i},f_{m}(x_{i}))
L(yi,fm(xi)+rm+1,i)<L(yi,fm(xi)),故可令
r
m
+
1
,
i
=
−
α
∂
L
∂
f
(
x
i
)
∣
f
(
x
i
)
=
f
m
(
x
i
)
r_{m+1,i}=-\alpha~\frac{\partial L}{\partial f(x_{i})}|_{f(x_{i})=f_{m}(x_{i})}
rm+1,i=−α ∂f(xi)∂L∣f(xi)=fm(xi)
α
>
0
\alpha >0
α>0是步长。
上一轮迭代得到的模型在每个样本上的变化大小已经得到,接下来只需要对变化大小用CART树拟合得到一个弱学习器即可完成这一轮的迭代。
对
(
x
i
,
α
r
m
+
1
,
i
)
(x_{i},\alpha r_{m+1,i})
(xi,αrm+1,i)拟合一棵CART回归树,由于对
(
x
i
,
α
r
m
+
1
,
i
)
(x_{i},\alpha r_{m+1,i})
(xi,αrm+1,i)拟合和对
(
x
i
,
r
m
+
1
,
i
)
(x_{i},r_{m+1,i})
(xi,rm+1,i)拟合所得到的CART回归树结构是一样的,只是根据CART树自身的准则得到最后的叶子结点的值不同,但在GBDT中最后的叶子节点的值并不采用CART树自身得出的叶子节点值,而极小化损失函数得到,需要用到的只是CART树结构,故这里我们对
(
x
i
,
r
m
+
1
,
i
)
(x_{i}, r_{m+1,i})
(xi,rm+1,i)拟合得到一颗CART树,假设拟合的CART回归树的结构为
R
m
+
1
,
j
,
j
=
1
,
2
,
.
.
.
,
J
R_{m+1,j},j=1,2,...,J
Rm+1,j,j=1,2,...,J,
R
m
+
1
,
j
R_{m+1,j}
Rm+1,j为叶子节点区域。
下一步公式更新为
f
(
x
)
:
=
f
(
x
)
+
∑
j
c
m
+
1
,
j
I
(
x
∈
R
m
+
1
,
j
)
f(x):=f(x)+\sum_{j}c_{m+1,j}I(x\in R_{m+1,j})
f(x):=f(x)+j∑cm+1,jI(x∈Rm+1,j)
其中
c
m
+
1
,
j
c_{m+1,j}
cm+1,j由极小化下列公式得到
c
m
+
1
,
i
=
a
r
g
m
i
n
c
∑
x
i
∈
R
m
+
1
,
j
L
(
y
i
,
f
m
(
x
i
)
+
c
)
c_{m+1,i}=argmin_{c} ~\sum_{x_{i}\in R{m+1,j}}L(y_{i},f_{m}(x_{i})+c)
cm+1,i=argminc xi∈Rm+1,j∑L(yi,fm(xi)+c)
令
G
m
+
1
(
x
)
=
∑
j
c
m
+
1
,
j
I
(
x
∈
R
m
+
1
,
j
)
G_{m+1}(x)=\sum_{j}c_{m+1,j}I(x\in R_{m+1,j})
Gm+1(x)=j∑cm+1,jI(x∈Rm+1,j)
更新模型:
f
m
+
1
(
x
)
:
=
f
m
(
x
)
+
G
m
+
1
(
x
)
f_{m+1}(x):=f_{m}(x)+G_{m+1}(x)
fm+1(x):=fm(x)+Gm+1(x)
继续重复上述步骤继续迭代直至达到设置的迭代次数M为止.
算法步骤总结:
输入:训练数据
(
x
i
,
y
i
)
i
=
1
,
.
.
.
,
N
,
x
i
∈
X
⊆
R
n
,
y
i
∈
Y
⊆
R
(x_{i},y_{i})_{i=1,...,N},x_{i}\in X \subseteq R^{n},y_{i} \in Y\subseteq R
(xi,yi)i=1,...,N,xi∈X⊆Rn,yi∈Y⊆R
~~~~~~~~~~
损失函数
L
(
y
,
f
(
x
)
)
L(y,f(x))
L(y,f(x))
输出:模型
f
M
(
x
)
f_{M}(x)
fM(x)
1.初始化
f
0
(
x
)
=
a
r
g
m
i
n
c
∑
i
=
1
N
L
(
y
i
,
c
)
f_{0}(x)=arg~min_{c}\sum_{i=1}^{N}L(y_{i},c)
f0(x)=arg minc∑i=1NL(yi,c)
2.设第
m
m
m轮迭代得到的模型为:
f
m
(
x
)
f_{m}(x)
fm(x) 设
m
=
0
m=0
m=0
3.对每个样本计算损失函数负梯度在当前模型的值
r
m
+
1
,
i
=
−
∂
L
(
y
i
,
f
(
x
i
)
)
∂
f
(
x
i
)
∣
f
(
x
i
)
=
f
m
(
x
i
)
r_{m+1,i}=-\frac{\partial L(y_{i},f(x_{i}))}{\partial f(x_{i})}|f(x_{i})=f_{m}(x_{i})
rm+1,i=−∂f(xi)∂L(yi,f(xi))∣f(xi)=fm(xi)
4.对
(
x
i
,
r
m
+
1
,
i
)
(x_{i},r_{m+1,i})
(xi,rm+1,i)拟合一个CART回归树,得到第
m
+
1
m+1
m+1棵树的叶子节点区域
R
m
+
1
,
j
,
j
=
1
,
.
.
.
,
J
R_{m+1,j},j=1,...,J
Rm+1,j,j=1,...,J
5.对
j
=
1
,
.
.
.
J
j=1,...J
j=1,...J计算
c
m
+
1
j
=
a
r
g
m
i
n
c
∑
c
∈
R
m
+
1
,
j
L
(
y
i
,
f
m
(
x
i
)
+
c
)
c_{m+1j}=arg~min_{c}\sum_{c\in R_{m+1,j}}L(y_{i},f_{m}(x_{i})+c)
cm+1j=arg mincc∈Rm+1,j∑L(yi,fm(xi)+c)
6.更新
f
m
+
1
(
x
)
=
f
m
(
x
)
+
∑
j
=
1
J
c
m
+
1
,
j
I
(
x
∈
R
m
+
1
j
)
f_{m+1}(x)=f_{m}(x)+\sum_{j=1}^{J}c_{m+1,j}I(x\in R_{m+1j})
fm+1(x)=fm(x)+j=1∑Jcm+1,jI(x∈Rm+1j)
7.m=m+1,重复步骤3,4,5,6直至到达迭代次数
M
M
M为止,得到模型
f
M
(
x
)
=
f
0
(
x
)
+
∑
m
=
1
M
∑
j
=
1
J
c
m
,
j
I
(
x
∈
R
m
,
j
)
f_{M}(x)=f_{0}(x)+\sum_{m=1}^{M}\sum_{j=1}^{J}c_{m,j}I(x\in R_{m,j})
fM(x)=f0(x)+m=1∑Mj=1∑Jcm,jI(x∈Rm,j)
注意:用CART树拟合时,CART树有自己的分裂准则,对每个结点包括最后的叶子结点都有自己的赋值,但这里最后的叶子结点的取值由极小化GBDT本身的损失函数确定。
CART回归树得构建
拟合负梯度是回归问题,故不采用基尼指数,信息增益作为分裂准则,通常采用MSE均方误差作为分割样本得标准,或者采用Friedman在论文中所用到得公式
i
2
(
R
l
,
R
r
)
=
w
l
w
r
w
l
+
w
r
(
a
v
e
l
−
a
v
e
r
)
2
i_{2}(R_{l},R_{r})=\frac{w_{l}w{r}}{w_{l}+w{r}}(ave_{l}-ave_{r})^2
i2(Rl,Rr)=wl+wrwlwr(avel−aver)2
其中
a
v
e
l
,
a
v
e
r
ave_{l},ave_{r}
avel,aver分别是左右孩子的均值,
w
l
,
w
r
w_{l},w{r}
wl,wr分别是左右孩子的权重之和。
以下使用具体的损失函数讨论
二分类问题
使用negative binomial log-likehood作为损失函数(Freidman在论文中所使用的公式):
L
(
y
,
f
(
x
)
)
=
l
o
g
(
1
+
e
x
p
(
−
2
y
f
(
x
)
)
)
,
y
=
±
1
L(y,f(x))=log(1+exp(-2yf(x))),y=\pm 1
L(y,f(x))=log(1+exp(−2yf(x))),y=±1
f
(
x
)
=
1
2
l
o
g
p
(
y
=
1
∣
x
)
p
(
y
=
−
1
∣
x
)
f(x)=\frac{1}{2}log\frac{p(y=1|x)}{p(y=-1|x)}
f(x)=21logp(y=−1∣x)p(y=1∣x)
也可以使用逻辑回归中使用的公式
L
(
y
,
f
(
x
)
)
=
−
(
y
l
o
g
(
f
(
x
)
)
+
(
1
−
y
)
l
o
g
(
1
−
f
(
x
)
)
)
,
y
=
0
o
r
1
L(y,f(x))=-(ylog(f(x))+(1-y)log(1-f(x))),y=0~or~1
L(y,f(x))=−(ylog(f(x))+(1−y)log(1−f(x))),y=0 or 1(公式灵感来源于最大似然估计法)其中,
f
(
x
)
=
1
1
+
e
x
p
(
−
x
)
f(x)=\frac{1}{1+exp(-x)}
f(x)=1+exp(−x)1
用负梯度计算:
γ
m
,
i
=
−
∂
L
(
y
i
,
f
(
x
i
)
)
∂
f
(
x
i
)
∣
f
m
−
1
(
x
i
)
=
2
y
i
1
+
e
x
p
(
2
y
i
f
m
−
1
(
x
i
)
)
\gamma_{m,i}=-\frac{\partial L(y_{i},f(x_{i}))}{\partial f(x_{i})}|_{f_{m-1}(x_{i})}=\frac{2y_{i}}{1+exp(2y_{i}f_{m-1}(x_{i}))}
γm,i=−∂f(xi)∂L(yi,f(xi))∣fm−1(xi)=1+exp(2yifm−1(xi))2yi
对
(
x
i
,
γ
m
,
i
)
(x_{i},\gamma_{m,i})
(xi,γm,i)拟合一颗
J
J
J个节点的CART回归树,于是得到生成的树所产生的区域
R
m
,
j
,
1
≤
j
≤
J
R_{m,j},1\le j \le J
Rm,j,1≤j≤J。
树的叶子节点取值由下列式子的得到:
a
r
g
m
i
n
c
m
,
j
,
j
=
1
,
.
.
.
,
J
∑
i
=
1
N
L
(
y
i
,
f
m
−
1
(
x
i
)
+
∑
j
J
c
m
,
j
I
(
x
i
∈
R
m
,
j
)
)
argmin_{c_{m,j},j=1,...,J}\sum_{i=1}^{N}L(y_{i},f_{m-1}(x_{i})+\sum_{j}^{J}c_{m,j}I(x_{i}\in R_{m,j}))
argmincm,j,j=1,...,Ji=1∑NL(yi,fm−1(xi)+j∑Jcm,jI(xi∈Rm,j))
即对
∀
j
\forall j
∀j
c
m
,
j
=
a
r
g
m
i
n
c
∑
x
i
∈
R
m
,
j
L
(
y
i
,
f
m
−
1
(
x
i
)
+
c
)
=
a
r
g
m
i
n
c
∑
x
i
∈
R
m
,
j
l
o
g
(
1
+
e
x
p
(
−
2
y
i
(
f
m
−
1
(
x
i
)
+
c
)
)
)
\begin{aligned} c_{m,j}&=argmin_{c}\sum_{x_{i}\in R_{m,j}}L(y_{i},f_{m-1}(x_{i})+c)\\ &=argmin_{c}\sum_{x_{i}\in R_{m,j}}log(1+exp(-2y_{i}(f_{m-1}(x_{i})+c))) \end{aligned}
cm,j=argmincxi∈Rm,j∑L(yi,fm−1(xi)+c)=argmincxi∈Rm,j∑log(1+exp(−2yi(fm−1(xi)+c)))
用
N
e
w
t
o
n
Newton
Newton迭代法来近似节点的估计值
c
m
,
j
=
∑
x
i
∈
R
m
,
j
γ
m
,
i
∑
x
i
∈
R
m
,
j
∣
γ
m
,
i
∣
(
2
−
∣
γ
m
,
i
∣
)
c_{m,j}=\frac{\sum_{x_{i}\in R_{m,j}}\gamma_{m,i}}{\sum_{x_{i}\in R_{m,j}}|\gamma_{m,i}|(2-|\gamma_{m,i}|)}
cm,j=∑xi∈Rm,j∣γm,i∣(2−∣γm,i∣)∑xi∈Rm,jγm,i
由于
f
(
x
)
=
1
2
l
o
g
p
+
1
−
p
+
f(x)=\frac{1}{2}log\frac{p_{+}}{1-p_{+}}
f(x)=21log1−p+p+
故
p
+
(
x
)
=
1
1
+
e
x
p
−
2
f
(
x
)
p_{+}(x)=\frac{1}{1+exp^{-2f(x)}}
p+(x)=1+exp−2f(x)1
p
−
(
x
)
=
1
1
+
e
x
p
2
f
(
x
)
p_{-}(x)=\frac{1}{1+exp^{2f(x)}}
p−(x)=1+exp2f(x)1
再利用得到的概率公式进行分类。
多分类问题
对于多分类问题,使用多分类对数损失函数:
L
(
(
y
k
,
f
k
(
x
)
)
k
=
1
,
.
.
.
,
K
)
=
∑
l
=
1
K
−
p
k
l
o
g
p
k
L(({y_{k},f_{k}(x)})_{k=1,...,K})=\sum_{l=1}^{K}-p_{k}logp_{k}
L((yk,fk(x))k=1,...,K)=l=1∑K−pklogpk
损失函数看作是关于
f
k
(
x
)
f_{k}(x)
fk(x)的多元函数,其中
y
k
=
0
o
r
1
,
∑
l
=
1
K
y
k
=
1
y_{k}=0~or~1,\sum_{l=1}^{K}y_{k}=1
yk=0 or 1,∑l=1Kyk=1
使用
s
o
f
t
m
a
x
softmax
softmax函数将预测结果转化为概率,即:
p
k
=
e
x
p
(
f
k
(
x
)
)
∑
l
=
1
K
e
x
p
(
f
l
(
x
)
)
p_{k}=\frac{exp(f_{k}(x))}{\sum_{l=1}^{K}exp(f_{l}(x))}
pk=∑l=1Kexp(fl(x))exp(fk(x))
计算每个样本分别在各个类上的负梯度
γ
m
,
k
,
i
=
−
∂
L
∂
f
k
(
x
i
)
∣
f
m
−
1
,
l
(
x
i
)
,
l
=
1
,
.
.
.
,
K
=
y
k
,
i
−
p
k
,
m
−
1
\begin{aligned} \gamma_{m,k,i}&=-\frac{\partial L}{\partial f_{k}(x_{i})}|_{f_{m-1,l}(x_{i}),l=1,...,K}\\ &=y_{k,i}-p_{k,m-1} \end{aligned}
γm,k,i=−∂fk(xi)∂L∣fm−1,l(xi),l=1,...,K=yk,i−pk,m−1
对每个类对应的负梯度
(
x
i
,
γ
m
,
k
,
i
)
(x_{i},\gamma_{m,k,i})
(xi,γm,k,i),用一棵节点数为
J
J
J的CART树拟合,叶子节点的估计值为:
{
c
m
,
k
,
j
}
=
a
r
g
m
i
n
{
C
k
,
j
}
∑
i
=
1
N
L
(
{
y
k
,
i
,
f
m
−
1
,
k
(
x
i
)
+
∑
j
=
1
J
c
k
,
j
I
(
x
i
∈
R
m
,
k
,
j
)
}
)
\{c_{m,k,j}\}=argmin_{\{C_{k,j}\}}\sum _{i=1}^{N}L(\{y_{k,i},f_{m-1,k}(x_{i})+\sum_{j=1}^{J}c_{k,j}I(x_{i}\in R_{m,k,j})\})
{cm,k,j}=argmin{Ck,j}i=1∑NL({yk,i,fm−1,k(xi)+j=1∑Jck,jI(xi∈Rm,k,j)})
用
N
e
w
t
o
n
Newton
Newton迭代法来近似,得到估计结果
c
m
,
k
,
j
=
K
−
1
K
∑
x
i
∈
R
m
,
k
,
j
γ
m
,
k
,
i
∑
x
i
∈
R
m
,
k
,
j
∣
γ
m
,
k
,
i
∣
(
2
−
∣
γ
m
,
k
,
i
∣
)
c_{m,k,j}=\frac{K-1}{K}\frac{\sum_{x{i}\in R_{m,k,j}}\gamma_{m,k,i}}{\sum_{x{i}\in R_{m,k,j}}|\gamma_{m,k,i}|(2-|\gamma_{m,k,i}|)}
cm,k,j=KK−1∑xi∈Rm,k,j∣γm,k,i∣(2−∣γm,k,i∣)∑xi∈Rm,k,jγm,k,i
GBDT回归算法
使用平方损失作为损失函数
L
(
y
,
f
(
x
)
)
=
1
2
(
y
−
f
(
x
)
)
2
L(y,f(x)) = \frac{1}{2}(y-f(x))^2
L(y,f(x))=21(y−f(x))2
损失函数在每个样本上的负梯度为
γ
m
,
i
=
−
∂
L
∂
f
(
x
i
)
∣
(
f
(
x
i
)
=
f
m
−
1
(
x
i
)
)
=
y
i
−
f
m
−
1
(
x
i
)
\gamma_{m,i}=-\frac{\partial L}{\partial f(x_{i})}|(f(x_{i})=f_{m-1}(x_{i}))=y_{i}-f_{m-1}(x_{i})
γm,i=−∂f(xi)∂L∣(f(xi)=fm−1(xi))=yi−fm−1(xi)
用CART树拟合负梯度得到CART树结构
R
m
,
j
,
j
=
1
,
.
.
.
,
J
R_{m,j} , j=1,...,J
Rm,j,j=1,...,J
求叶子节点的估计值
C
m
,
j
=
a
r
c
m
i
n
c
∑
x
i
∈
R
m
,
j
L
(
y
i
,
f
m
−
1
(
x
i
)
+
c
)
C_{m,j}=arcmin_{c}\sum _{x_{i}\in R_{m,j}}L(y_{i},f_{m-1}(x_{i})+c)
Cm,j=arcmincxi∈Rm,j∑L(yi,fm−1(xi)+c)
求得
C
m
,
j
=
a
v
e
x
i
∈
R
m
,
j
(
y
i
−
f
m
−
1
(
x
i
)
)
C_{m,j}=ave_{x_{i}\in R_{m,j}}(y_{i}-f_{m-1}(x_{i}))
Cm,j=avexi∈Rm,j(yi−fm−1(xi))
令
G
m
+
1
(
x
)
=
∑
j
=
1
J
C
m
,
j
I
(
x
∈
R
m
,
j
)
G_{m+1}(x)=\sum_{j=1}^{J}C_{m,j}I(x\in R_{m,j})
Gm+1(x)=j=1∑JCm,jI(x∈Rm,j)
更新迭代模型得
f
m
(
x
)
=
f
m
−
1
(
x
)
+
G
m
(
x
)
f_{m}(x)=f_{m-1}(x)+G_{m}(x)
fm(x)=fm−1(x)+Gm(x)
损失函数
分类算法:
1.指数损失
L
(
y
,
f
(
x
)
)
=
e
x
p
(
−
y
f
(
x
)
)
L(y, f(x))=exp(-yf(x))
L(y,f(x))=exp(−yf(x))
2.对数损失
二分类:
1)
L
(
y
,
f
(
x
)
)
=
l
o
g
(
1
+
e
x
p
(
−
2
y
f
(
x
)
)
)
,
y
=
±
1
L(y,f(x))=log(1+exp(-2yf(x))),y=\pm 1
L(y,f(x))=log(1+exp(−2yf(x))),y=±1
f
(
x
)
=
1
2
l
o
g
p
(
y
=
1
∣
x
)
p
(
y
=
−
1
∣
x
)
f(x)=\frac{1}{2}log\frac{p(y=1|x)}{p(y=-1|x)}
f(x)=21logp(y=−1∣x)p(y=1∣x)
2)
L
(
y
,
f
(
x
)
)
=
−
(
y
l
o
g
(
f
(
x
)
)
+
(
1
−
y
)
l
o
g
(
1
−
f
(
x
)
)
)
,
y
=
0
o
r
1
L(y,f(x))=-(ylog(f(x))+(1-y)log(1-f(x))),y=0~or~1
L(y,f(x))=−(ylog(f(x))+(1−y)log(1−f(x))),y=0 or 1
f
(
x
)
=
1
1
+
e
x
p
(
−
x
)
f(x)=\frac{1}{1+exp(-x)}
f(x)=1+exp(−x)1
多分类:
L
(
(
y
k
,
f
k
(
x
)
)
k
=
1
,
.
.
.
,
K
)
=
∑
l
=
1
K
−
p
k
l
o
g
p
k
L(({y_{k},f_{k}(x)})_{k=1,...,K})=\sum_{l=1}^{K}-p_{k}logp_{k}
L((yk,fk(x))k=1,...,K)=l=1∑K−pklogpk
p
k
=
e
x
p
(
f
k
(
x
)
)
∑
l
=
1
K
e
x
p
(
f
l
(
x
)
)
p_{k}=\frac{exp(f_{k}(x))}{\sum_{l=1}^{K}exp(f_{l}(x))}
pk=∑l=1Kexp(fl(x))exp(fk(x))
回归算法
1.均方差
L
(
y
.
f
(
x
)
)
=
(
y
−
f
(
x
)
)
2
L(y.f(x))=(y-f(x))^2
L(y.f(x))=(y−f(x))2
2.绝对误差
L
(
y
.
f
(
x
)
)
=
∣
y
−
f
(
x
)
∣
L(y.f(x))=|y-f(x)|
L(y.f(x))=∣y−f(x)∣
对应的负梯度为:
s
i
g
n
(
y
i
−
f
(
x
i
)
sign(y_{i}-f(x_{i})
sign(yi−f(xi)
3.Huber损失
结合了均方误差和绝对误差,对于远离中心的异常点采用绝对误差,对于靠近中心的点采用均方误差,这个界由分位数点决定
L
(
x
,
f
(
x
)
)
=
{
1
2
(
y
−
f
(
x
)
)
2
∣
y
−
f
(
x
)
∣
≤
δ
δ
(
∣
y
−
f
(
x
)
∣
−
δ
2
)
∣
y
−
f
(
x
)
∣
>
δ
L(x,f(x)) = \begin{cases} \frac{1}{2}(y-f(x))^2 & |y-f(x)|\le \delta\\ \delta(|y-f(x)|-\frac{\delta}{2}) &|y-f(x)|> \delta \end{cases}
L(x,f(x))={21(y−f(x))2δ(∣y−f(x)∣−2δ)∣y−f(x)∣≤δ∣y−f(x)∣>δ
负梯度为:
∂
L
∂
f
(
x
i
)
=
{
y
i
−
f
(
x
i
)
∣
y
−
f
(
x
)
∣
≤
δ
δ
(
s
i
g
n
(
y
i
−
f
(
x
i
)
)
∣
y
−
f
(
x
)
∣
>
δ
\frac{\partial L}{\partial f(x_{i})}= \begin{cases} y_{i}-f(x_{i})& |y-f(x)|\le \delta\\ \delta (sign(y_{i}-f(x_{i})) &|y-f(x)|> \delta \end{cases}
∂f(xi)∂L={yi−f(xi)δ(sign(yi−f(xi))∣y−f(x)∣≤δ∣y−f(x)∣>δ
4.分位数损失
L
(
x
,
f
(
x
)
)
=
{
θ
∣
y
−
f
(
x
)
∣
y
≥
f
(
x
)
(
1
−
θ
)
∣
y
−
f
(
x
)
∣
y
<
f
(
x
)
L(x,f(x)) = \begin{cases} \theta|y-f(x)| & y\ge f(x)\\ (1-\theta)|y-f(x)| &y< f(x) \end{cases}
L(x,f(x))={θ∣y−f(x)∣(1−θ)∣y−f(x)∣y≥f(x)y<f(x)
负梯度为
∂
L
∂
f
(
x
i
)
=
{
θ
y
≥
f
(
x
)
θ
−
1
y
<
f
(
x
)
\frac{\partial L}{\partial f(x_{i})}= \begin{cases} \theta & y\ge f(x)\\ \theta -1 &y<f(x) \end{cases}
∂f(xi)∂L={θθ−1y≥f(x)y<f(x)
其中
θ
\theta
θ是分位数,需要在回归之前指定
Huber损失和分位数损失用于减少噪声的影响
注意:不管是回归问题还是分类问题拟合残差时都是用CART回归树
正则化
为防止过拟合,需要正则化,GBDT正则化有三种方式
1.对弱分类器加上步长
f
m
(
x
)
=
f
m
−
1
(
x
)
+
f_{m}(x)=f_{m-1}(x)+
fm(x)=fm−1(x)+
正则化、优缺点,应用