机器学习进阶(三)boost

本文深入探讨了提升算法,包括Adaboost、GBDT和Xgboost。解释了Adaboost的前向分步算法、损失函数以及权重更新,GBDT的一阶泰勒展开和残差拟合,以及Xgboost的二阶泰勒展开、正则项和并行化处理。同时,文章提到了缺失值处理和Xgboost在处理缺失值的策略。
摘要由CSDN通过智能技术生成

提升

  1. 概念:提升可以用于回归和分类问题,它每一步产生一个弱预测模型(如决策树),并加权累加到总模型中;如果每一步的弱预测模型生成都是依据损失函数的梯度方向,则称之为梯度提升(Gradientboosting)。
  2. 理论:如果一个问题存在弱分类器,则可以通过提升的办法得到强分类器。
  3. 损失函数:对于每个样本,经典定义为 L ( y , F ( x ⃗ ) ) = 1 2 ( y − F ( x ⃗ ) ) 2 , 或 者 L ( y , F ( x ⃗ ) ) = ∣ y − F ( x ⃗ ) ∣ \quad L(y, F(\vec{x}))=\frac{1}{2}(y-F(\vec{x}))^{2},或者 L(y, F(\vec{x}))=|y-F(\vec{x})| L(y,F(x ))=21(yF(x ))2L(y,F(x ))=yF(x )
    我们的目标是获取最优函数 F ∗ ( x ⃗ ) , F^{*}(\vec{x}), F(x ), 使得: F ∗ ( x ⃗ ) = arg ⁡ min ⁡ F E ( x , y ) [ L ( y , F ( x ⃗ ) ) ] F^{*}(\vec{x})=\underset{F}{\arg \min } E_{(x, y)}[L(y, F(\vec{x}))] F(x )=FargminE(x,y)[L(y,F(x ))]
    F ( x ⃗ ) F(\vec{x}) F(x )为常数,损失函数取前者,则 F ∗ ( x ⃗ ) F^{*}(\vec{x}) F(x ) y 1 , … , y n y_1,\dots,y_n y1,,yn的均值,取后者,是中位数。

Adaboost

二分类的分类器,损失函数为指数型损失函数 exp ⁡ ( y i f ( x i ) ) \exp(y_if(x_i)) exp(yif(xi)),分类器类型未规定。通过提高前一轮弱分类器错误分类 样本的权值,降低正确分类样本的权值,使未分类正确的样本获得更多的关注。
在求解弱分类器和分类器权重时采取前向分步算法。

前向分步算法

整体思路:先假定 F ( x ) F(x) F(x)是一族基函数 f i ( x ) f_i(x) fi(x) 的加权和
F ( x ⃗ ) = ∑ i = 1 M γ i f i ( x ) +  const  F(\vec{x})=\sum_{i=1}^{M} \gamma_{i} f_{i}(x)+\text { const } F(x )=i=1Mγifi(x)+ const 
通过最小化损失函数 L ( y i , F m ( x ⃗ ) ) L\left(y_{i}, F_{m}(\vec{x})\right) L(yi,Fm(x ))去得到局部最优的 F m ( x ⃗ ) F_{m}(\vec{x}) Fm(x ),更新模型权重,得到加法模型
F m ( x ⃗ ) = F m − 1 ( x ⃗ ) + arg ⁡ min ⁡ γ i , f ∈ H ∑ i = 1 n L ( y i , F m − 1 ( x ⃗ i ) + γ i f ( x ⃗ i ) ) F_{m}(\vec{x})=F_{m-1}(\vec{x})+\underset{ \gamma_i,f \in H}{\arg \min } \sum_{i=1}^{n} L\left(y_{i}, F_{m-1}\left(\vec{x}_{i}\right)+\gamma_if\left(\vec{x}_{i}\right)\right) Fm(x )=Fm1(x )+γi,fHargmini=1nL(yi,Fm1(x i)+γif(x i))

步骤

  1. 假设经过 m m m 轮迭代前向分步算法已经得到 f m ( x ) : f_{m}(x): fm(x):
    f m ( x ) = f m − 1 ( x ) + α m − 1 G m ( x ) = α 1 G 1 ( x ) + ⋯ + α m G m ( x ) . \begin{aligned} f_{m}(x) &=f_{m-1}(x)+\alpha_{m-1} G_{m}(x) \\ &=\alpha_{1} G_{1}(x)+\cdots+\alpha_{m} G_{m}(x). \end{aligned} fm(x)=fm1(x)+αm1Gm(x)=α1G1(x)++αmGm(x).
  2. 现在我们的目标是在第 m + 1 m+1 m+1 轮迭代得到 α m + 1 , G m + 1 ( x ) \alpha_{m+1}, G_{m+1}(x) αm+1,Gm+1(x) f m + 1 ( x ) f_{m+1}(x) fm+1(x)
    使得在训练数据集 T T T 上的指数损失最小,即
    ( α m + 1 , G m + 1 ( x ) ) = arg ⁡ min ⁡ α , G ∑ i = 1 N exp ⁡ [ − y i ( f m ( x i ) + α G ( x i ) ) ] = arg ⁡ min ⁡ α , G ∑ i = 1 N w ˉ m + 1 , i exp ⁡ [ − y i α G ( x i ) ] \left(\alpha_{m+1}, G_{m+1}(x)\right)=\arg \min _{\alpha, G} \sum_{i=1}^{N} \exp \left[-y_{i}\left(f_{m}\left(x_{i}\right)+\alpha G\left(x_{i}\right)\right)\right]\\ =\arg \min _{\alpha, G} \sum_{i=1}^{N} \bar{w}_{m+1, i} \exp \left[-y_{i} \alpha G\left(x_{i}\right)\right] (αm+1,Gm+1(x))=argα,Gmini=1Nexp[yi(fm(xi)+αG(xi))]=argα,Gmini=1Nwˉm+1,iexp[yiαG(xi)]
    其中, w ˉ m + 1 , i = exp ⁡ [ − y i f m ( x i ) ] \bar{w}_{m+1, i}=\exp \left[-y_{i} f_{m}\left(x_{i}\right)\right] wˉm+1,i=exp[yifm(xi)](与该轮样本权值只差一个规范化系数,在PS中详细解释)。
    该式子第一行从形式来看,是最小化未赋权样本在当前整个分类器 f m f_m fm的损失函数,第二行从结果看,是最小化赋权样本在该轮分类器 G m G_m Gm上的损失函数。

PS:
初始化训练集的权重分布 D 1 = ( w 11 , … , w 1 i , … , w 1 N ) , w 1 i = 1 N D_1=(w_{11},\dots,w_{1i},\dots,w_{1N}),w_{1i}=\frac{1}{N} D1=(w11w1i,,w1N)w1i=N1。假设经过 m m m 轮迭代,得到基于样本 D m D_m Dm分布的分类器 G m ( x i ) G_m(x_i) Gm(xi),及根据分类器 G m ( x i ) G_m(x_i) Gm(xi)误差得到的系数 α m \alpha_m αm,现在需要更新下一轮样本的权值 D m + 1 D_{m+1} Dm+1

D m + 1 = ( w m + 1 , 1 , ⋯   , w m + 1 , i , ⋯   , w m + 1 , N ) \begin{aligned} D_{m+1}&=\left(w_{m+1,1}, \cdots, w_{m+1, i}, \cdots, w_{m+1, N}\right) \end{aligned} Dm+1=(wm+1,1,,wm+1,i,,wm+1,N)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值