一文搞懂:Adaboost及手推算法案例

boosting

Boosting 算法的特点在于:将表现一般的弱分类器通过组合变成更好的模型。代表自然就是我们的随即森林了。

GBDT和Adaboost是boost算法中比较常见的两种,这里主要讲解Adaboost。

Adaboost

Adaboost算法的核心就是两个权重。对于数据有一个权重,权重大的数据计算的损失就大;然后对于每一个弱分类器有一个权重,这个权重就是每一个弱分类器最终投票的比重。

【先给出Adaboost关键的公式】
α 1 = 1 2 l n ( 1 − ϵ 1 ϵ 1 ) \alpha_1=\frac{1}{2}ln(\frac{1-\epsilon_1}{\epsilon_1}) α1=21ln(ϵ11ϵ1) 分类器的投票权重
W i = W i e − α i y i h ^ ( x i ) W_i=W_ie^{-\alpha_i y_i \hat{h}(x_i)} Wi=Wieαiyih^(xi) 更新样本的权重

【随即森林中最终投票每一个弱分类器的比重相同】

大概流程就是,现在有一个数据集,然后每个数据的比重都相同,然后训练了好几个不同的弱分类器。

  1. 挑选错误率最低的弱分类器,然后通过【某种算法】得到这个弱分类器最终投票的比重,然后通过【某种算法】更新每一个数据的比重;
  2. 因为每一个数据的比重更新了,所以再选择一个错误率最低的弱分类器,然后通过【某种算法】得到这个弱分类器最终投票的比重,然后通过【某种算法】更新每一个数据的比重;
  3. 重复这个过程。

算法的流程:


这里给一个具体计算的例子:
假设这里有10个数据:

加号和减号分别代表不同的类别。然后每个类别有5个样本。

下面会给出3个弱分类器:

这三个分类器分别是 h 1 ( x ) , h 2 ( x ) , h 3 ( x ) h_1(x),h_2(x),h_3(x) h1(x),h2(x),h3(x)
图中画圈的数据就是分类错误的数据。可以发现每个弱分类器都分错了3个。下面开始Adaboost的算法。

先计算三个弱分类器的错误率,因为一开始每个样本的权重都是0.1,每个分类器又都错了3个样本,所以错误率都是0.3。这里就随机选取第一个分类器作为错误率最低的那个好了。
我们这里通过第一个【某种算法】计算第一个弱分类器在最终的投票权重:
α 1 = 1 2 l n ( 1 − ϵ 1 ϵ 1 ) = 0.5 ∗ l n ( 0.7 0.3 ) = 0.4236 \alpha_1=\frac{1}{2}ln(\frac{1-\epsilon_1}{\epsilon_1})=0.5*ln(\frac{0.7}{0.3})=0.4236 α1=21ln(ϵ11ϵ1)=0.5ln(0.30.7)=0.4236

然后通过这个 α 1 = 0.4236 \alpha_1=0.4236 α1=0.4236来更新每一个样本的权重。这也就是上面提到的第二个【某种算法】:
W ( i ) = W ( i ) ∗ e − α y i h ^ ( x i ) W(i)=W(i)*e^{-\alpha y_i \hat {h}(x_i)} W(i)=W(i)eαyih^(xi)

这啥意思的,现在假设第一个样本+1,这个样本的权重是0.1(更新前),然后这个样本在第一个分类器中是非类正确的,所以 y i h ^ ( x i ) = 1 y_i \hat{h}(x_i)=1 yih^(xi)=1,所以这个样本更新后的权重就是 0.1 e − 0.4236 = 0.0655 0.1e^{-0.4236}=0.0655 0.1e0.4236=0.0655

当然,对于+3这个样本,第一个分类器就分类错误,所以 y i h ^ ( x i ) = − 1 y_i \hat{h}(x_i)=-1 yih^(xi)=1,所以呢这个样本更新后的权重就是: 0.1 e 0.4236 = 0.1527 0.1e^{0.4236}=0.1527 0.1e0.4236=0.1527

下面经过第一个分类器之后的样本的权重:

然后再计算每一个分类器的基于更新之后样本权重的错误率:

这一次选的是第二个分类器,然后计算它的 α 2 \alpha_2 α2,然后再更新每一个样本的权重值:

然后是再寻找错误率最低的分类器:

到这一步的时候,我们已经有了 α 1 , α 2 , α 3 \alpha_1,\alpha_2,\alpha_3 α1,α2,α3,所以我们的adaboost已经得到了所有分类器的投票权重,所以最终的模型投票公式就是:


喜欢的话,可以微信扫码关注微信公众号【机器学习炼丹术】,成为炫酷的炼丹师吧~

公众号回复【下载】有精选的免费机器学习学习资料。 公众号每天会更新一个机器学习、深度学习的小知识,都是面试官会问的知识点哦~

  • 【机器学习的基础数学(PDF)】
  • 【竞赛中的大数据处理流程(PDF)】
  • 【如何做大数据的基础特征工程(PDF)】
  • 【自然语言处理NLP的应用实践大合集(PDF)】
  • 【python入门级教材(400页PDF)】

公众号每天会更新一个机器学习、深度学习的小知识,都是面试官会问的知识点哦~

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值