Adaboost算法原理(二分类及多分类)

Adaboost算法是一种集成学习(ensemble learning)方法。在集成学习中,强学习器指的是由多个机器学习模型组合形成的精度更高的模型。而参与组合的模型就被称为是弱学习器。进行预测时使用的是这些弱学习器的联合模型。训练时需要用训练样本依次训练这些弱学习器。
典型的集成学习算法是随机森林和boosting算法,Adaboost算法是boosting算法的一种实现版本。
Adaboost算法的实现流程可以简单概述为:

  1. 使用多次循环迭代来进行训练
    每次循环过程中,更新样本权重,寻找当前分布下的最优弱分类器,并计算弱分类器误差率,根据误差率,更新样本权重。初始时所有样本的权重相等,训练过程中,如果样本被弱分类器错误分类,那么它的权重会增大(之后的训练中会被弱分类器更加关注),反之会减小。对于弱分类器自身来说,准确率越高权重越大。

  2. 聚合多次训练的弱分类器,来组合成强分类器。

  3. 输出最终预测结果。
    权重大的弱分类器在预测时的“话语权”就越大。

接下来进行详细介绍。

算法梳理

给定m个训练样本 ( x 1 , y 1 ) , ( x 2 , y 2 ) , ⋯   , ( x m , y m ) (x_1, y_1), (x_2, y_2), \cdots, (x_m, y_m) (x1,y1),(x2,y2),,(xm,ym),其中 x i x_i xi为特征向量, y i y_i yi为类别标签。 x i ∈ X , y i ∈ Y = { − 1 , + 1 } x_i \in X, y_i \in Y = \{ -1, +1 \} xiX,yiY={ 1,+1}

  1. 训练算法

1)初始化样本权重 w 0 w^0 w0,令所有样本的初始权重相等 w 0 = 1 m w^0 = \frac{1}{m} w0=m1
2)接着循环N次,训练弱分类器,计算误差率 e t e_t et。也可以计算准确率 p t p_t pt,其中 e t + p t = 1 e_t + p_t = 1 et+pt=1
3)弱分类器的权重
α t = 1 2 l n 1 − e t e t = 1 2 l n p t 1 − p t \alpha_t = \frac{1}{2}ln\frac{1-e_t}{e_t} = \frac{1}{2}ln\frac{p_t}{1 - p_t} αt=2

  • 13
    点赞
  • 105
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值