[机器学习]集成学习 - Boosting家族

最近一个做报告用的slide,比较系统的整理了一下boosting家族的数学推导和优化技巧。其中也参考了很多论文和博客,具体内容在文末参考文献。

委员会方法-集成学习

Boosting


目录

  1. Ensemble Learning
  2. AdaBoost
  3. GBDT & XGBoost
  4. LightGBM

Ensemble Learning

left w:580 h:385 drop-shadow:0,5px,10px,rgba(0,0,0,.4)

在有监督的机器学习中,衡量模型的“好坏”可以从两个方面评估,即模型预测的偏差–Bias和模型预测的方差–Variance

1.Bias是用训练数据集训练出的模型的输出与真实模型的输出值之间的差异

2.Variance是不同的训练数据集训练出的模型输出值之间的差异


Ensemble Learning

left w:580 h:385 drop-shadow:0,5px,10px,rgba(0,0,0,.4)

设真实的预测模型为 f f f,则样本满足 Y = f ( X ) + ϵ Y=f(X)+\epsilon Y=f(X)+ϵ,其中 ϵ \epsilon ϵ为随机误差


设我们训练得到的模型为 f ^ \hat{f} f^,则训练得到的模型 f ^ \hat{f} f^的偏差为:
B i a s 2 ( f ^ ) = ( f ^ ( X ) − Y ) 2 Bias^2(\hat{f})=(\hat{f}(X)-Y)^2 Bias2(f^)=(f^(X)Y)2
X X X为训练集的样本


模型 f ^ \hat{f} f^的方差为:
V a r i a n c e ( f ^ ) = E [ ( Y − f ^ ( X ) ) 2 ] Variance(\hat{f})=E[(Y-\hat{f}(X))^2] Variance(f^)=E[(Yf^(X))2]
求期望是对整个样本空间


Ensemble Learning

left w:580 h:385 drop-shadow:0,5px,10px,rgba(0,0,0,.4)

Bagging:对n个独立不相关的模型的预测结果取平均,方差是原来单个模型的 1 n \frac{1}{n} n1,从而在单个模型的Bias都较低(单个模型复杂度较高)的前提下,降低模型的Variance

Boosting:单个模型的Bias都不算很低(单个模型复杂度较低)的前提下,通过增添新的简单的模型有权重的修正整个模型的Bias


AdaBoost—Adaptive Boosting

center w:700 drop-shadow:0,5px,10px,rgba(0,0,0,.4)

          AdaBoost全称为"Adaptive Boosting"(自适应增强),由Yoav Freund和Robert Schapire在1995年提出。它是最早提出的Boosting算法,核心即使将多个分类器组合成一个强分类器。"自适应"的核心即使,在前几个弱分类器分错的样本的在下一个弱分类器的训练中会加强,一直迭代到指定数量的弱分类器或者指定的错误率。


AdaBoost数学推导

假设
· m + 1 m+1 m+1步得到的完整分类器为 f m + 1 ( x ) = f m ( x ) + a m + 1 C m + 1 ( x ; θ m + 1 ) f_{m+1}(x)=f_{m}(x)+a_{m+1}C_{m+1}(x;\theta_{m+1}) fm+1(x)=fm(x)+am+1Cm+1(x;θm+1)
其中 C m + 1 C_{m+1} Cm+1为第 m + 1 m+1 m+1个弱分类器, θ \theta θ为第 m + 1 m+1 m+1个弱分类器的参数, a m + 1 a_{m+1} am+1为第 m + 1 m+1 m+1个分类器的输出权重
· 目标损失函数 L ( a m + 1 , θ m + 1 ) = ∑ i = 1 n e − y i f m + 1 ( x i ) L(a_{m+1}, \theta_{m+1})=\sum\limits_{i=1}^n e^{-y_i f_{m+1}(x_i)} L(am+1,θm+1)=i=1neyifm+1(xi),其中 y i ∈ { − 1 , + 1 } y_i\in \{-1, +1\} yi{ 1,+1}

求解过程
· 计算 m + 1 m+1 m+1步的权重 w i , m + 1 = e − y i f m ( x i ) w_{i,m+1}=e^{-y_i f_m(x_i)} wi,m+1=eyifm(xi),则 L ( a m + 1 , θ m + 1 ) = ∑ i = 1 n w i , m + 1 × e − y i × a m + 1 C m + 1 ( x i ; θ m + 1 ) L(a_{m+1}, \theta_{m+1})=\sum\limits_{i=1}^n w_{i,m+1}\times e^{-y_i \times a_{m+1}C_{m+1}(x_i;\theta_{m+1})} L(am+1,θm+1)=i=1nwi,m+1×eyi×am+1Cm+1(xi;θm+1)
· 计算 m + 1 m+1 m+1个弱分类器的参数 θ ^ m + 1 = arg ⁡ min ⁡ θ m + 1 ∑ i = 1 n w i , m + 1 × I { y i ≠ C m + 1 ( x i , θ m + 1 ) } \hat{\theta}_{m+1}=\mathop{\arg\min}\limits_{\theta_{m+1}}\sum\limits_{i=1}^n w_{i,m+1}\times I\{y_i \neq C_{m+1}(x_i, \theta_{m+1})\} θ^m+1=θm+1argmini=1nwi,m+1×I{ yi=Cm+1(xi,θm+1)}
  这个目标损失函数即为第 m + 1 m+1 m+1个弱分类器的目标损失函数

· 计算加权误判率 E r r m + 1 = ∑ i = 1 n w i , m + 1 ∑ i = 1 n w i , m + 1 × I { y i ≠ C m + 1 ( x i ) } Err_{m+1} = \sum\limits_{i=1}^n\frac{w_{i, m+1}}{\sum\limits_{i=1}^n w_{i, m+1}} \times I\{y_i \neq C_{m+1}(x_i)\} Errm+1=i=1ni=1nwi,m+1wi,m+1×I{ yi=Cm+1(xi)}
· 计算 m + 1 m+1 m+1个弱分类器最终输出的权重 a ^ m + 1 = 1 2 l o g ( 1 − E r r m + 1 E r r m + 1 ) \hat{a}_{m+1}=\frac{1}{2}log(\frac{1-Err_{m+1}}{Err_{m+1}}) a^m+1=21log(Errm+11Errm+1)

· 更新 f m + 1 f_{m+1} fm+1


AdaBoost数学推导

a ^ m + 1 \hat{a}_{m+1} a^m+1的计算原理:
当第 m + 1 m+1 m+1个弱分类器已经训练完成后, L ( a m + 1 , θ m + 1 ) = ∑ i = 1 n w i , m + 1 × e − y i × a m + 1 C m + 1 ( x i ; θ ^ m + 1 ) L(a_{m+1}, \theta_{m+1})=\sum\limits_{i=1}^n w_{i,m+1}\times e^{-y_i \times a_{m+1}C_{m+1}(x_i;\hat{\theta}_{m+1})} L(am+1,θm+1)=i=1nwi,m+1×eyi×am+1

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值