0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Adaboost算法总结

lviY_AI_shequ 来源:刘林华 作者:电子发烧友 2018-12-29 16:08 次阅读

前言

集成学习的Boosting算法串行生成多个弱学习器并按一定的结合策略生成强学习器,AdaBoost算法是Boosting系列算法中的一种,本文详细总结了AdaBoost算法的相关理论。

目录

1. Boosting算法基本原理

2. Boosting算法的权重理解

3. AdaBoost的算法流程

4. AdaBoost算法的训练误差分析

5. AdaBoost算法的解释

6. AdaBoost算法的正则化

7. AdaBoost算法的过拟合问题讨论

8. 总结

Boosting的算法流程

Boosting算法是一种由原始数据集生成不同弱学习器的迭代算法,然后把这些弱学习器结合起来,根据结合策略生成强学习器。

如上图,Boosting算法的思路:

(1)样本权重表示样本分布,对特定的样本分布生成一个弱学习器。

(2)根据该弱学习器模型的误差率e更新学习器权重α。

(3)根据上一轮的学习器权重α来更新下一轮的样本权重。

(4)重复步骤(1)(2)(3),结合所有弱学习器模型,根据结合策略生成强学习器。

Boosting算法的权重理解

Boosting算法意为可提升算法,可提升方法具体表现在(一)改变训练数据的概率分布(训练数据的权值分布),(二)弱分类器权重的生成。理解这两个原理是理解AdaBoost算法的基础。

1. 训练数据的权重理解

我们对癌症病人和健康人作一个定性的分析,目的是理解Boosingt算法训练数据权重更新的思想。

如下图为分类器G(1)的分类情况,假设样本数据的权重相等。

pIYBAFwnLOWAF_WUAAAVycDjoz0260.png

癌症误分类成健康人的结果很可能是丧失生命,因此这种误分类情况肯定不能出现的,若我们对该误分类点的权重增加一个极大值,以突出该样本的重要性,分类结果如下图:

pIYBAFwnLOWAAg3yAAAMQ6FK3mI723.png

因此,增加误分类样本的权重,使分类器往该误分类样本的正确决策边界方向移动,当权重增加到一定值时,误分类样本实现了正确分类,因为训练样本的权重和是不变的,增加误分类样本权重的同时,也降低了正确分类样本的权重。这是Boosting算法的样本权重更新思想。

2. 弱学习器的权重理解

Boosting算法通过迭代生成了一系列的学习器,我们给予误差率低的学习器一个高的权重,给予误差率高的学习器一个低的权重,结合弱学习器和对应的权重,生成强学习器。弱学习器的权重更新是符合常识的,弱学习器性能越好,我们越重视它,权重表示我们对弱学习器的重视程度,即权重越大,这是Boosting算法弱学习器权重的更新思想。

AdaBoost的算法流程

第一节描述了Boosting算法的流程,但是没有给出具体的算法详细说明:

(1)如何计算弱学习器的学习误差;

(2)如何得到弱学习器的权重系数α;

(3)如何更新样本权重D;

(4)使用何种结合策略;

我们从这四种问题的角度去分析AdaBoost的分类算法流程和回归算法流程。第k轮的弱分类器为pIYBAFwnLOWAM6hGAAAB0pE-h8I829.png

pIYBAFwnLOaAbS-8AAAS9gbjddk471.png

1. AdaBoost的分类算法流程

我们假设是二分类问题,输出为{-1,1}。第K轮的弱分类器为pIYBAFwnLOaAPl0oAAAB1HaOLLE390.png

1) 计算弱分类器的分类误差

在训练集上的加权误差率为:

pIYBAFwnLOaAaXC4AAAFqFweWkY862.png

pIYBAFwnLOaAFaNMAAAFqE1EjVA155.png

2) 弱学习权重系数α的计算

pIYBAFwnLOaAIWQFAAADHs2iFgM803.png

由上式可知,学习器误差率越小,则权重系数越大。

3) 下一轮样本的权重更新

pIYBAFwnLOaAVRPmAAAFZ4g6KBs544.png

其中Zk是规范化因子,使每轮训练数据集的样本权重和等于1。

pIYBAFwnLOeAJU5dAAAFe2OjnC4150.png

当样本处于误分类的情况,pIYBAFwnLOeAMrcPAAACuqCpET0176.pngpIYBAFwnLOeAUa6cAAACEij3tM4710.png该误分类样本的权重增加;当样本是处于正确分类的情况,pIYBAFwnLOeAadJ7AAACqSsz3lE511.png,则pIYBAFwnLOeAFTXTAAACELcvEzE585.png,该正确分类样本的权值减小。

4) 结合策略,构建最终分类器为:

pIYBAFwnLOiAa_ijAAAEtAcpxNw172.png

2. AdaBoost的回归算法流程

1) 计算弱学习器的回归误差率:

a) 计算训练集上的最大误差:

pIYBAFwnLOiAIfIYAAAE3hc22gk118.png

b) 计算每个样本的相对误差:

如果是线性误差,则

pIYBAFwnLOiAAuvmAAADruQgYXY330.png

如果是平方误差,则

pIYBAFwnLOiAIYOtAAAEACKcP7Q415.png

如果是指数误差,则

pIYBAFwnLOiAft8PAAAE0u8qAck766.png

c) 计算回归误差率

pIYBAFwnLOmAECSzAAAC2f99QAQ079.png

(2) 弱学习权重系数α的计算

pIYBAFwnLOmAUA-lAAAB7wJp-Xs401.png

(3)下一轮样本的权重更新

pIYBAFwnLOmAMK0EAAADXW5QmoY120.png

Zk是规范化因子,使样本权重的和为1,

pIYBAFwnLOmAdGFYAAADorV6BbA617.png

(4)结合策略,构建最终学习器为:

pIYBAFwnLOmAZuQfAAALITioM5M054.png

AdaBoost算法的训练误差分析

过程就不推倒了,可参考李航《统计学习方法》P142~P143,这里就只给出结论。

AdaBoost的训练误差界:

pIYBAFwnLOmAHXvHAAAGaTtOrPk997.png

pIYBAFwnLOqAJ_KyAAAKd7aUtAo887.png

由上式可知,AdaBoost的训练误差是以指数速率下降的,即AdaBoost算法随着迭代次数的增加,训练误差不断减小,即模型偏差显著降低 。

本文倾向于入门AdaBoost算法,下一篇文章会发散思维,介绍AdaBoost算法的相关性质,

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 算法
    +关注

    关注

    23

    文章

    4612

    浏览量

    92922
  • 数据结构
    +关注

    关注

    3

    文章

    573

    浏览量

    40135

原文标题:比较全面的Adaboost算法总结(一)

文章出处:【微信号:AI_shequ,微信公众号:人工智能爱好者社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    Adaboost算法的Haar特征怎么进行并行处理?

    Adaboost 算法是Freund 和Schapire 于1995 年提出的,全称为Adaptive Boosting。它是 Boosting 算法的改进,意为该算法通过机器训练与学
    发表于 08-28 07:05

    实现AdaBoost算法的代码

    AdaBoost算法实现
    发表于 11-07 09:19

    一种基于AdaBoost的SVM分类器

    针对AdaBoost的分量分类器的分类精度和差异性互为矛盾、以至于该矛盾的存在降低了AdaBoost算法的分类精度和泛化性的问题,提出了一种变 一AdaB0ostRBFSVM算法,通过
    发表于 01-08 18:12 28次下载

    Adaboost算法的FPGA实现与性能分析

    Adaboost算法采用由弱到强的级联型分类器用以快速检测人脸。但在实际应用中计算量巨大。在PC机上用纯软件实现该算法得到的目标检测速度也难以达到实时。本文论述了一种采用像
    发表于 07-17 18:11 22次下载

    基于Adaboost算法的驾驶员眨眼识别

    基于Adaboost算法的驾驶员眨眼识别 眨眼是一种睁闭眼睛的生理活动,眨眼的速度会受疲劳程度、情感压力、行为种类、睡觉数量、眼睛受伤程度、疾
    发表于 11-09 17:17 1198次阅读

    AdaBoost算法流程和证明

    Discete-AdaBoost算法 1、给定训练集: ,其中 ,表示 的正确的类别标签, , 表示第i副图像的第j个特征值 2、训练集上样本的初始分布: 3、寻找若分类器 ht( ) (1)对于每个样本中的第j个特
    发表于 07-18 10:40 0次下载

    基于AdaBoost_Bayes算法的中文文本分类系统

    基于AdaBoost_Bayes算法的中文文本分类系统_徐凯
    发表于 01-07 18:56 2次下载

    基于主动学习不平衡多分类AdaBoost改进算法

    针对不平衡分类中小类样本识别率低问题,提出一种基于主动学习不平衡多分类AdaBoost改进算法。首先,利用主动学习方法通过多次迭代抽样,选取少量的、对分类器最有价值的样本作为训练集;然后
    发表于 11-30 17:12 3次下载

    一种多分类的AdaBoost算法

    多类指数损失函数逐步添加模型( SAMME)是一种多分类的AdaBoost算法,为进一步提升SAMME算法的性能,针对使用加权概率和伪损失对算法的影响进行研究,在此基础上提出了一种基于
    发表于 12-01 16:50 1次下载

    非线性AdaBoost算法

    AdaBoost是数据挖掘领域最常见的提升算法之一。对传统AdaBoost将各个基分类器线性相加所存在的不足进行分析,并针对AdaBoost各个弱分类器的加权方式提出新的改进,将传统的
    发表于 01-04 16:58 0次下载

    adaboost运行函数的算法怎么来的?基本程序代码实现详细

    adaboost运行过程。算法是利用指数函数降低误差,运行过程通过迭代进行。其中函数的算法怎么来的,你不用知道!当然你也可以尝试使用其它的函数代替指数函数,看看效果如何。误差的上界限由Zm约束,然而Zm又是由Gm(xi)约束,所
    的头像 发表于 07-21 10:18 2469次阅读

    AdaBoost算法相关理论和算法介绍

    本文详细总结AdaBoost算法的相关理论,本文详细推导了AdaBoost算法的参数求解过程以及讨论了模型的过拟合问题。
    的头像 发表于 01-07 18:26 4169次阅读
    <b class='flag-5'>AdaBoost</b><b class='flag-5'>算法</b>相关理论和<b class='flag-5'>算法</b>介绍

    基于AdaBoost算法的复杂网络链路预测

    链路预测是复杂网络的重要研究方向,当前的链路预测算法因可利用的网络信息有限,导致预测算法的精确度受限为了提高预测算法的性能,采用改进的 Adaboost
    发表于 04-08 11:21 15次下载
    基于<b class='flag-5'>AdaBoost</b><b class='flag-5'>算法</b>的复杂网络链路预测

    基于SVM与Adaboost算法的入侵检测系统

    入侵检测系统在大数据量的情况下误报率高、泛化能力弱,且单一机器学习算法不能较好地应对多种攻击类型。为此,设计一个基于支持向量机(SM)与 Adaboost算法的入侵检测系统。依托 Snort系统
    发表于 05-25 16:35 6次下载

    基于AdaBoost算法的回放语音检测方法

    针对语音判别系统中单个分类器分类能力有限的问题,提出一种基于 Adaboost算法的回放语音检测方法。以常量Q倒谱系数和均值超矢量分别作为特征参数和 Adaboost算法的输人,将多个
    发表于 06-03 11:34 10次下载