Adaboost学习


前言

这是我自己对于Adaboost算法的学习以及总结。
参考的博客:
https://blog.csdn.net/v_july_v/article/details/40718799


以下是本篇文章正文内容

一、boosting与bagging

boosting就是随着学习的积累从弱到强。简而言之,每新加入一个弱学习器,整体能力就会得到提升。
代表算法:Adaboost、GBDT、XGBoost

Bagging与Boosting的差异在于:取样方式不同。Bagging采用均匀取样(比如在箱子中有100个球,80个黑球,20个白球,抽到黑球后再放回的抽),而Boosting根据错误率来取样,因此Boosting的分类精度要优于Bagging。

Bagging的训练集的选择是随机的,各轮训练集之间相互独立,而BoostIng的各轮训练集的选择与前面各轮的学习结果有关;

bagging和boosting都可以有效地提高分类的准确性。在大多数数据集中,boosting的准确性比bagging高。在有些数据集中,boosting会引起退化。(随机森林的使用采取的是bagging)

Bagging是指采用Bootstrap(有放回的均匀抽样)的方式从训练数据中抽取部分数据训练多个分类器,每个分类器的权重是一致的,然后通过投票的方式取票数最高的分类结果最为最终结果
对于bagging的理解,可以用一个例子来说明

在这里插入图片描述

二、Adaboost

1.原理介绍

Adaboost原理:训练一组数据,调整数据分布,将之前错误的数据区域‘放大’,将正确的数据区域‘缩小’,然后接着训练第二个学习器,再次调整数据分布。每轮数据调整,将注意力集中在错误数据中。整个训练过程如此迭代下去。

Adaboost的关键点是确认投票权重。

Adaboost的算法流程(加法模型):

1.初始化训练数据的权值分布。每一个训练样本最开始时都被赋予相同的权值:1/N

2.进行多轮迭代,用m = 1,2, …, M表示迭代的第多少轮

3.步骤3. 组合各个弱分类器

相关公式
在这里插入图片描述
在这里插入图片描述

具体细化的说:
1.初始化训练数据权重相等,训练第一个学习器
2.计算该学习器在训练中的错误率
3.计算学习器的权重
4.根据权重对数据在重新赋权
5.重复执行1-4次
6.对M个学习器进行加权投票

2.实例展示

这是我之前看到的一个例子,后来我具体的进行了尝试
这个问题在之前参考的博客中有体现,结合案例,在对过程进行分析,即可了解这一过程

在这里插入图片描述
当m=1,在权值分布为D1(10个数据,每个数据的权值为0.1),通过计算:
(v为阈值)

v取2.5时,误差率为0.3(x < 2.5时取1,x > 2.5时取-1,则6 7 8分错,误差率为0.3),
v取5.5时误差率最低为0.4(x < 5.5时取1,x > 5.5时取-1,则3 4 5 6 7 8皆分错,误差率0.6大于0.5,不可取。故令x > 5.5时取1,x < 5.5时取-1,则0 1 2 9分错,误差率为0.4),
v取8.5时误差率为0.3(x < 8.5时取1,x > 8.5时取-1,则3 4 5分错,误差率为0.3)

v取2.5与8.5的误差率相同,我们任选其中一个都可以,我们选取2.5,做第一个分类器

接着我们也可将归一化参数求得,计算弱分类器的权重
分类函数f1(x)= a1*G1(x) = 0.4236G1(x)


在这里插入图片描述
m=2,对于m=2,在权值分布为D2 = (0.0715, 0.0715, 0.0715, 0.0715, 0.0715, 0.0715, 0.1666, 0.1666, 0.1666, 0.0715)的训练数据上:

v取2.5时误差率为0.16663(x < 2.5时取1,x > 2.5时取-1,则6 7 8分错,误差率为0.16663),
v取5.5时误差率最低为0.07154(x > 5.5时取1,x < 5.5时取-1,则0 1 2 9分错,误差率为0.07153 + 0.0715),
v取8.5时误差率为0.07153(x < 8.5时取1,x > 8.5时取-1,则3 4 5分错,误差率为0.07153)。
所以,阈值v取8.5时误差率最低,故第二个基本分类器为
f2(x)=0.4236G1(x) + 0.6496G2(x)
在这里插入图片描述
对于m=3,在权值分布为D3 = (0.0455, 0.0455, 0.0455, 0.1667, 0.1667, 0.01667, 0.1060, 0.1060, 0.1060, 0.0455)的训练数据上,经过计算可得:

v取2.5时误差率为0.10603(x < 2.5时取1,x > 2.5时取-1,则6 7 8分错,误差率为0.10603),
v取5.5时误差率最低为0.04554(x > 5.5时取1,x < 5.5时取-1,则0 1 2 9分错,误差率为0.04553 + 0.0715),
v取8.5时误差率为0.16673(x < 8.5时取1,x > 8.5时取-1,则3 4 5分错,误差率为0.16673)

f3(x)=0.4236G1(x) + 0.6496G2(x)+0.7514G3(x)

最终的分类器为:

G(x) = sign[f3(x)] = sign[ 0.4236G1(x) + 0.6496G2(x)+0.7514G3(x) ]。

总结

这里对文章进行总结:
以上就是今天要讲的内容,本文仅仅简单介绍了Adaboost的原理。

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值