Boosting算法

Boosting算法通过结合多个弱分类器构建强分类器,每个弱分类器针对前一个分类器的偏差进行修正。与随机森林不同,Boosting的弱分类器具有较大偏差,通过连续修正降低整体误差。常用的损失函数包括指数型损失和二项似然损失,常选择决策树作为弱分类器。Gradient Boosting通过最速下降法更新模型,XGBoost则通过二次泰勒展开优化损失函数,提高运算效率。
摘要由CSDN通过智能技术生成

Boosting算法的思想和随机森林的思想是不同的,随机森林中的每棵树都是一个强分类器(树的深度比较深),那么这样偏差就会小得多,方差就会大的多,为了降低方差,随机森林设计了多棵树,每棵树的样本都是通过重抽样的方式获得,这样相当于综合了数据总体的多个样本进行训练,可以有效的降低方差,这样在测试集中才可以得到较好的效果。Boosting的思想是设计多个弱分类器,弱分类的特点就在于偏差过大,因此需要后续的分类器针对前面的分类器进行修正,将偏差变小。
**1.模型的描述 **
假设我们希望预测的变量为 Y Y Y,相关变量为 X X X,我们希望得到一个模型 F ( X ) F(X) F(X),对 Y Y Y进行预测,即
Y ^ = F ( X ) \hat{Y}=F(X) Y^=F(X)
同时分类问题最终是需要得到一个类别,因此
F ( X ) = s i g n ( f ( X ) ) F(X)=sign(f(X)) F(X)=sign(f(X))
针对回归问题,我们直接使用
F ( X ) = f ( X ) F(X)=f(X) F(X)=f(X)
模型的训练都需要有一个Loss function 用于衡量 Y ^ \hat{Y} Y^ Y Y Y之间的差异,模型训练的目的就在于最小化这个差异 ,即
min ⁡ f L ( Y , f ( X ) ) \min_{f} \quad L(Y,f(X)) fminL(Y,f(X))
写成带有样本的形式,即
min ⁡ f ∑ i L ( Y i , f ( X i ) ) (1) \min_{f} \quad \sum_{i}L(Y_{i},f(X_{i})) \tag{1} fminiL(Yi,f(Xi))(1)
Boosting算法的目的就是为了寻找M个的弱分类器 f 1 , . . . f M {f_1,...f_M} f1,...fM作用在样本上,然后将所有的弱分类的结果组合起来,也就是
f ( x ) = ∑ m = 1 M α m f m ( X ) f(x)=\sum_{m=1}^M \alpha_m f_m(X) f(x)=m=1Mαmfm(X)
于是公式(1)变成
min ⁡ α m , f m ∑ i L ( Y i , ∑ m = 1 M α m f m ( X ) ) \min_{\alpha_m,f_m} \quad \sum_iL(Y_i,\sum_{m=1}^M\alpha_mf_m(X)) αm,fmminiL(Yi,m=1Mαmfm(X))
采用如下的算法进行求解


A l g o r i t h m 1 Algorithm 1 Algorithm1

  1. f 0 ( X ) = 0 f_{0}(X)=0 f0(X)=0
  2. f o r m = 1 , . . . M for \quad m=1,...M form=1,...M
  3. { α m , γ m } = a r g m i n α , γ ∑ i L ( Y i , f m − 1 ( X i ) + α G ( X i ; γ ) ) \{\alpha_m,\gamma_m\}=argmin_{\alpha,\gamma} \sum_i L(Y_i,f_{m-1}(X_i)+\alpha G(X_i;\gamma)) { αm,γm}=argminα,γiL(Yi,fm1(Xi)+αG(Xi;γ))
  4. f m ( X ) = f m − 1 ( X ) + α m G ( X ; γ m ) f_m(X)=f_{m-1}(X)+\alpha_mG(X;\gamma_m) fm(X)=fm1(X)+αmG(X;γm)
  5. e n d f o r end \quad for endfor

最终 F ( X ) = s i g n ( f M ( X ) ) F(X)=sign(f_M(X)) F(X)=sign(fM(X)),通过 f M f_M fM的正负号来判断是否是正例,还是负例。
2.Loss function的选择
针对回归问题来说,我们容易想到使用均方误差作为损失函数,即
L ( Y , f ( X ) ) = ( Y − f ( X ) ) 2 L(Y,f(X))=(Y-f(X))^2 L(Y,f(X))=(Yf(X))2
针对分类问题,我们令 Y ∈ { − 1 , 1 } Y \in \{-1,1\} Y{ 1,1},我们首先想到的是误判率作为损失函数 , 即
L ( Y , f ( X ) ) = I ( Y ≠ s i g n ( f ( X ) ) ) L(Y,f(X))=I(Y \not=sign(f(X))) L(Y,f(X))=I(Y=sign(f(X)))
但是通常不使用误判率作为损失函数.
那么针对分类问题的话,使用如下两种损失函数
L ( Y , f ( X ) ) = e x p ( − Y f ( X ) ) L(Y,f(X))=exp(-Yf(X)) L(Y,f(X))=exp(Yf(X))
L ( Y , f ( X ) ) = l o g ( 1 + e − 2 Y f ( X ) ) L(Y,f(X))=log(1+e^{-2Yf(X)}) L(Y,f(X))=log(1+e2Yf(X))
第一个表示指数型损失函数,第二个表示二项似然损失函数
第一个指数型损失函数到底表示什么意思 ???我们通过如下的推导过程来说明
我们的目的是最小化损失函数,即
min ⁡ f ( X ) E Y ∣ X ( e − Y f ( X ) ) (3) \min_{f(X)}E_{Y|X}(e^{-Yf(X)}) \tag{3} f(X)minEYX(eYf(X))(3)
我们用 P ( Y = 1 ∣ X ) P(Y=1|X) P(Y=1X)表示Y取1的概率, P ( Y = − 1 ∣ X ) P(Y=-1|X) P(Y=1X)表示Y取-1的概率 ,那么(3)等价于
min ⁡ f ( X ) P ( Y = 1 ∣ X ) e − f ( X ) + P ( Y = − 1 ∣ X ) e f ( X ) \min_{f(X)} P(Y=1|X)e^{-f(X)}+P(Y=-1|X)e^{f(X)} f(X)minP(Y=1X)ef(X)+P(Y=1X)ef(X)
从而可以求解出
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=1X)P(Y=1X)
所以我们最终是针对 P ( Y = 1 ∣ X ) P(Y=1|X) P(Y=1X)的log-odds的估计,也就是说如果 f ∗ ( X ) > 0 f^*(X)>0 f(X)>0的话,即
P ( Y = 1 ∣ X ) > P ( Y = − 1 ∣ X ) P(Y=1|X)>P(Y=-1|X) P(Y=1X)>P(Y=1X)
我们预测为正例,否则预测为负例。
其实最开始我们的目的就在于解决 P ( Y = 1 ∣ X ) P(Y=1|X) P(Y=1X) P ( Y = − 1 ∣ X ) P(Y=-1|X) P(Y=1X)谁大谁小的问题,我们需要一个对log-odds的估计
第二个二项似然损失函数又是如何来的????
我们假设
p ( X ) = P ( Y = 1 ∣ X ) = 1 1 + e − 2 f ( X ) p(X)=P(Y=1|X)=\frac{1} {1+e^{-2f(X)}} p(X)=P(Y=1X)=1+e2f(X)1
然后我们令 Y ′ = ( Y + 1 ) / 2 Y'=(Y+1)/2 Y=(Y+1)/2 ,那么二项负似然损失函数为
L ( Y , p ( X ) ) = − ( Y ′ l o g p ( X ) + ( 1 − Y ′ ) l o g ( 1 − p ( X ) ) ) L(Y,p(X))=-(Y'log p(X)+(1-Y')log(1-p(X))) L(Y,p(X))=Ylogp(X)+(1Y)log(1p(X))
等价的也就是
l o g ( 1 + e − 2 Y f ( X ) ) log(1+e^{-2Yf(X)}) log(1+e2Yf(X))
其实这两个损失函数都是在对P(Y=1|X)的log-odds进行估计,从而选择概率大的那个类为预测类。
那么是否可以使用均方误差作为分类问题的损失函数, 和指数型损失函数一样,我们首先看一下最小化均方误差函数等价于对哪个值的估计
f ∗ ( X ) = a r g min ⁡ f ( X ) E Y ∣ X ( Y − f ( X ) ) 2 = E ( Y ∣ X ) = 2 P ( Y = 1 ∣ X ) − 1 f^*(X)=arg\min_{f(X)}E_{Y|X}(Y-f(X))^2=E(Y|X)=2P(Y=1|X)-1 f(X)=argf(X)minEYX(Yf(X))2=E(YX)=2P(Y=1X)1
然后通过 f ∗ ( X ) f^*(X) f(X)的正负号进行判断是正例还是负例.如果YF(X)>0 ,也就是准确预测出类别,同时F(X)越大,对应的误差应该越小,但是均方误差却是越大的。这便是均方误差不适于用作分类的loss function。
指数型损失函数和二项负似然函数便是随着YF(X)的增大而减小。

如同回归中均方误差和绝对值误差的区别,即绝对值误差更加稳健,受离群点的影响较小,二项负似然损失同样受离群点的影响较小。而指数型损失函数由于当YF(X)<0时是指数型惩罚,因此受到离群点的影响更大。

弱分类器的选择(boosted Tree)
通常情况下,我们会使用决策树作为弱分类器,原因是决策树便于实现,能够灵活的处理不同类型的数据。(数值型数据,符号型数据)。那么首先我们需要确认使用决策树需要哪些参数。决策树的本质是将自变量空间划分成 K K K不相交的区块 R j ( j ∈ 1 , . . . K ) R_j(j \in 1,...K) Rj(j1,...K),然后在每个区块中给定一个值 γ j ( j ∈ 1 , . . . K ) \gamma_j(j \in 1,...K) γj(j1,...K),如果一条记录落入改区块中,那么它的取值就是 γ j \gamma_j γj,我们把决策树弱分类器记为
T ( X ; Θ ) T(X;\Theta) T(X;Θ)
其中 Θ = R j , γ j , j ∈ { 1 , 2... , K } \Theta={R_j,\gamma_j} ,j \in \{1,2...,K\} Θ=Rj,γj,j{ 1,2...,K}
那么根据algorithm 1,我们需要求解
a r g min ⁡ Θ ∑ i L ( Y i , f m − 1 ( X i ) + T m ( X i ; Θ ) ) (4) arg \min_{\Theta} \sum_i L(Y_i,f_{m-1}(X_i)+T_m(X_i;\Theta)) \tag 4 argΘminiL(Yi,fm1(Xi)+Tm(Xi;Θ))(4)
根据不同的损失函数,有不同的求解方法。
1.均方误差
公式(4)将会转换成
a r g min ⁡ Θ ∑ i ( Y i − f m − 1 ( X i ) − T m ( X i ; Θ ) ) ) 2 arg \min_{\Theta} \sum_i (Y_i-f_{m-1}(X_i)-T_m(X_i;\Theta)))^2 argΘmini(Yifm1(Xi)Tm(Xi;Θ)))<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值