Adaboost算法的原理推导及解释

Adaboost算法的原理推导及解释

前置知识:Boosting概述

Boosting方法的基本思想

在这里插入图片描述

该方法使用迭代方式完成对各个弱学习器的训练构造, 每次迭代对训练样本集的选择都与前面各轮的学习结果有关。

使用前面各轮学习结果更新当前各训练样本的权重对前面被错误预测的赋予较大的权重,实现对当前训练样本集合数据分布的优化

Boosting方法的的学习方法

Boosting 集成学习通常使用两种方式调整训练样本集的数据分布

  • 仅调整样本数据的权重,而不改变当前训练样本集合。

  • 改变当前训练样本集合,将被前面弱学习器错误预测的样本复制到关于当前弱学习器的训练样本集合中重新进行训练。

在这里插入图片描述

在实际的模型训练中,常使用第一种方式调整训练样本的数据分布。第二种方式是复制被前面弱学习器错误预测样本到样本训练集当中重新进行训练。

而调整样本权重的基本思想是提高当前训练样本集合中被错误预测样本的权重降低已被正确预测样本的权重,使得后续对的弱学习器的训练构造更加重视那些被错误预测的样本。

关于权重的理解(非常重要!!!)

  • 一方面,指的是分类错误率方向的影响,指的是计算学习器L对样本集D的分类错误率时候的样本比重,即假如样本dj分类错误,本来该样本权重系数应该是1/n(n为样本集D的样本总数目),然后经过调整,dj的权重系数修改为1/2;相应的di分类正确的样本权重修改为1/2。

  • 另一方面,指的是模型参数训练优化方向的影响,指的是模型不断优化的梯度或者决策方向,朝着哪一个或者哪些方向去迭代优化,例如: w i + 1 = w i + ∑ k = 1 n w i k φ ( w i k X k ) \mathbf{w}_{\mathbf{i}+1}=\mathbf{w}_{\mathbf{i}}+\sum_{\mathbf{k}=1}^{\mathbf{n}}{\mathbf{w}_{\mathbf{ik}}\mathbf{\varphi }\left( \mathbf{w}_{\mathbf{ik}}\mathbf{X}_{\mathbf{k}} \right)} wi+1=wi+k=1nwikφ(wikXk),当模型参数的更新公式中涉及到输入样本时,权重将会影响模型参数的优化方向。

方法的流程如下:

  • 对于n个样本的训练集,初始样本权重为1/n,则对所有被预测错误样本集Q,其整体权重等于ε。
  • 若规定权重更新后Q的整体权重为1/2,则需将其初始权重ε乘以1/(2ε), 即ε*1/(2ε)=1/2。
  • 为了保证更新后的概率之和为1,则剩余样本应乘以1/[2(1-ε)]。

例题:现有均匀分配权重样本集训练得到的分类器𝐶1,其分类结果如表所示。试更新该训练样本集的权重并求出分类器𝐶1基于更新权重后样本集的分类错误率。

在这里插入图片描述

依题意可知,共有60个分类正确样本、共40个分类错误样本,分类错误率为𝜀 =0.4。错误分类样本权重更新因子𝛼 = 1/(2𝜀)= 1.25,正确分类样本权重更新因子𝛽 = 1/[2(1 − 𝜀)]=5/6,则权重更新后分类结果 表所示,此时错误率𝜀′ = 0.5,结果如下表。

在这里插入图片描述

核心部分:Adaboost算法的原理推导和解释

Adaboost算法的基本思想

在这里插入图片描述

AdaBoost是一种具有自适应性质的Boosting集成学习算法,自适应性主要表现在自动提升被错误预测样本的权重,自动减少被正确预测样本的权重,使得弱学习器训练过程能够根据模型预测性能自动进行调整

Adaboost算法的算法流程

现以二分类任务为例介绍该算法的具体过程:

  • 对于训练样本集𝐷 = { 𝑋1, 𝑦1 , 𝑋2, 𝑦2 , ⋯ , (𝑋𝑛, 𝑦𝑛)},其中𝑦𝑖𝜖{−1, +1},由 AdaBoost 集成学习算法构造集成模型的基本步骤如下:

    (1)令𝑖=1并设定弱学习器的数目𝑚。使用均匀分布初始化训练样本集的权重分布,令𝑛维向量𝑤𝑖表示第𝑖次需更新的样本权重,则有:𝑤1= (𝑤11, 𝑤12, ⋯ , 𝑤1𝑛)𝑇 =(1/n, 1/n, …, 1/n)T (w12代表第1次迭代,第2个样本对应的样本权重,一个样本的权重主要影响的是模型不断优化的梯度或者决策方向,朝着哪一个或者哪些方向去迭代优化,例如: w i + 1 = w i + ∑ k = 1 n w i k φ ( w i k X k ) \mathbf{w}_{\mathbf{i}+1}=\mathbf{w}_{\mathbf{i}}+\sum_{\mathbf{k}=1}^{\mathbf{n}}{\mathbf{w}_{\mathbf{ik}}\mathbf{\varphi }\left( \mathbf{w}_{\mathbf{ik}}\mathbf{X}_{\mathbf{k}} \right)} wi+1=wi+k=1nwikφ(wikXk),当模型参数的更新公式中涉及到输入样本时,权重将会影响模型参数的优化方向

    (2)使用权重分布为𝑤𝑖的训练样本集𝐷𝑖学习得到第𝑖个弱学习器𝑓i

    (3)计算𝑓𝑖在训练样本集𝐷𝑖上的分类错误率𝑒𝑖
    e i = ∑ k = 1 n w i k I ( f i ( X k ) ≠ y k ) \mathbf{e}_{\mathbf{i}}=\sum_{\mathbf{k}=1}^{\mathbf{n}}{\mathbf{w}_{\mathbf{ik}}\mathbf{I}\left( \mathbf{f}_{\mathbf{i}}\left( \mathbf{X}_{\mathbf{k}} \right) \ne \mathbf{y}_{\mathbf{k}} \right)} ei=k=1nwikI(fi(Xk)=yk)
    (4)确定弱学习器𝑓𝑖的组合权重𝛼𝑖。由于弱学习器𝑓𝑖的权重取值应与其分类性能相关,对于分类错误率𝑒𝑖越小的𝑓𝑖,则其权重𝛼𝑖应该越大,故有 α i = 1 2 ln ⁡ 1 − e i e i \mathbf{\alpha }_{\mathbf{i}}=\frac{1}{2}\ln \frac{1-\mathbf{e}_{\mathbf{i}}}{\mathbf{e}_{\mathbf{i}}} αi=21lnei1ei

    (5)依据弱学习器𝑓𝑖对训练样本集𝐷𝑖的分类错误率𝑒𝑖更新样本权重,更新公式为 w i + 1 , j = w i j e ( − α i y j f i ( X j ) ) z i \mathbf{w}_{\mathbf{i}+1,\mathbf{j}}=\frac{\mathbf{w}_{\mathbf{ij}}\mathbf{e}^{\left( -\mathbf{\alpha }_{\mathbf{i}}\mathbf{y}_{\mathbf{j}}\mathbf{f}_{\mathbf{i}}\left( \mathbf{X}_{\mathbf{j}} \right) \right)}}{\mathbf{z}_{\mathbf{i}}} wi+1,j=ziwije(αiyjfi(Xj)),其中为 z i = ∑ j = 1 n w i j e ( − α i y j f i ( X j ) ) \mathbf{z}_{\mathbf{i}}=\sum_{\mathbf{j}=1}^{\mathbf{n}}{\mathbf{w}_{\mathbf{ij}}\mathbf{e}^{\left( -\mathbf{\alpha }_{\mathbf{i}}\mathbf{y}_{\mathbf{j}}\mathbf{f}_{\mathbf{i}}\left( \mathbf{X}_{\mathbf{j}} \right) \right)}} zi=j=1nwije(αiyjfi(Xj))归一化因子,保证更新后权重向量是概率之和等于1。其中yj∈{1,-1},而fi(Xj)∈{1,-1},如果第i次迭代,分类正确,则相对之前的权重降低了 e i 1 − e i \sqrt{\frac{\mathbf{e}_{\mathbf{i}}}{1-\mathbf{e}_{\mathbf{i}}}} 1eiei ;否则,权重则提升了 1 e i − 1 \sqrt{\frac{1}{\mathbf{e}_{\mathbf{i}}}-1} ei11

    (6)若𝑖 < 𝑚,则令𝑖 = 𝑖 + 1并返回步骤(2),否则执行步骤(7)。

    (7)对于𝑚个弱分类器𝑓1, 𝑓2, ⋯ , 𝑓𝑚,分别将每个𝑓𝑖按权重𝛼𝑖进行组合: G = s i g n ( ∑ i = 1 m α i f i ( X ) ) \mathbf{G}=\mathbf{sign}\left( \sum_{\mathbf{i}=1}^{\mathbf{m}}{\mathbf{\alpha }_{\mathbf{i}}\mathbf{f}_{\mathbf{i}}\left( \mathbf{X} \right)} \right) G=sign(i=1mαifi(X)),得到并输出所求集成算法模型G,算法结束。

    • 算法关键要点是如何更新样本权重,即步骤(5)中的权重更新公式。则可将该公式改写为如下形式:

      w i + 1 , j = { w i j z i e ( − α i ) , f i ( X k ) = y k w i j z i e ( α i ) , f i ( X k ) ≠ y k \mathbf{w}_{\mathbf{i}+1,\mathbf{j}}=\begin{cases} \frac{\mathbf{w}_{\mathbf{ij}}}{\mathbf{z}_{\mathbf{i}}}\mathbf{e}^{\left( -\mathbf{\alpha }_{\mathbf{i}} \right)},\mathbf{f}_{\mathbf{i}}\left( \mathbf{X}_{\mathbf{k}} \right) =\mathbf{y}_{\mathbf{k}}\\ \frac{\mathbf{w}_{\mathbf{ij}}}{\mathbf{z}_{\mathbf{i}}}\mathbf{e}^{\left( \mathbf{\alpha }_{\mathbf{i}} \right)},\mathbf{f}_{\mathbf{i}}\left( \mathbf{X}_{\mathbf{k}} \right) \ne \mathbf{y}_{\mathbf{k}}\\ \end{cases} wi+1,j={ziwije(αi),fi(Xk)=ykziwije(αi),fi(Xk)=yk

    • 即当某个样本被前一个弱学习器错误预测时,该样本的权重会被放大倍 e i 1 − e i \frac{\mathbf{e}_{\mathbf{i}}}{1-\mathbf{e}_{\mathbf{i}}} 1eiei这里的倍数指的是更新之后,负例相较于正例的权重占比被放大),以便在后续弱学习器构造过程得到应有的重视。

  • 例题:试以所示数据集为训练样本,使用AdaBoost集成学习算法构建集成模型,过程如下:

    • 在这里插入图片描述

    • 在这里插入图片描述

    • 在这里插入图片描述

    • 在这里插入图片描述

  • 17
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 14
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Super__Tiger

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值