目录

前言

一、Adaboost 算法

1.1 Adaboost 步骤

1.2 公式推导与分析

步骤1. 首先,初始化训练数据的权值分布。

步骤2. 开始迭代

步骤3. 组合各个弱分类器,得到最终分类器。​

1.3 误差界

二、加法模型与向前分步算法

2.1 加法模型



前言

学硕一枚,对Adaboost 算法的公式的每一步进行推导与讲解。如果有错误的地方还请各位同学指正。本文推导步骤主要来源于(https://blog.csdn.net/v_july_v/article/details/40718799),但是该博客对公式推导部分略微模糊,因此本文主要是对其中的公式进行讲解与分析,公式部分并没有做出修改。如有侵权,告知即刻删除。

一、Adaboost 算法

AdaBoost(Adaptive Boosting),即自适应增强。主要思想是:对分错的样本提高权重,对分错的样本降低权重,用全新的加权样本去训练下一个分类器,直到达到某个预定的足够小的错误率或达到预先指定的最大迭代次数。AdaBoost的自适应体现在算法过程中产生一个上界(该上界无需指定),并使得损失函数以指数级下降。

1.1 Adaboost 步骤

整个Adaboost 迭代算法就3步:

(1)初始化训练数据的权值分布。权值归一化处理(假设N个样本,每个样本初始权重:1/N)。
(2)迭代训练弱分类器。在一次迭代过程中,如果某个样本点被准确分类,降低它的权值;如果没有被准确地分类,提高它的权值。使用更新后的权值训练下一个分类器。注明:这里更新的是样本权值。
(3)弱分类器组合成强分类器。在迭代结束后,加大分类误差率小的弱分类器的权重,降低分类误差率大的弱分类器的权重。显然误差率小的分类器有良好的效果,理应加大权重。注明:这里产生的是分类器权重。

1.2 公式推导与分析

给定一个训练数据集T={(x1,y1), (x2,y2)…(xN,yN)},其中x代表样本,yi属于类别集合集合{-1,+1}。(需要知道类别,因此Adaboost是监督学习)。

Adaboost的算法流程如下:

步骤1. 首先,初始化训练数据的权值分布。

每一个训练样本最开始时都被赋予相同的权值:1/N。D1表示初始权重集合。

步骤2. 开始迭代

  • a. 第m次迭代使用权值分布为Dm的训练数据集学习,得到基本分类器Gm(x)。

其中m = 1,2, ..., M表示迭代的次数。注明:使用误差率最低的设计基本分类器这句话含义,           可结合实例分析。

  • b. 计算Gm(x)在训练数据集上的分类误差率

其中em表示m此迭代的分类误差率;函数I表示:I(true)=1,I(false)=0。因此误差率实际表             示为Gm(x)误分类样本的权值之和。

  • c. 计算Gm(x)的系数。

其中am表示Gm(x)在合成强分类器的重要程度(本文log全部采用自然底数e做底)。

疑问:为什么分类器权重am写成这种形式? 

回答:有两个理由

  1. 理由:在可行域上是单调减函数,即满足了误差率越小,权重越大这一要求。(注明:em取0.5时am取得0。一般只有随机分类时,分类错误与分类正确等价,才有可能在第一次迭代时em取0.5,随后迭代中em越来越小。但是机器学习总归是分类正确的时刻多于分类错误的,因此em一般小于0.5,当然不排除个别分类器全错的情况)。
  2. 理由:实际上只要满足“误差率越小,权重越大这一要求”,任意的权重生成公式都是可以的。但是Adaboost本质上是加法模型的特殊情况,am可以由加法模型推导而来,详情见下文。
  • d. 更新训练数据集的权值分布

其中,Zm是规范化因子,使得Dm+1成为一个概率分布。

疑问:为什么样本权重更新wm+1写成这种形式?

回答:有两个理由

  1. 理由:满足了“分类器Gm(x)误分类样本的权值增大,正确分类样本的权值减小”这一要求。AdaBoost方法能聚焦于较难分的样本上。
  2. 理由:是Adaboost本质上是加法模型的特殊情况,wm+1可以由加法模型推导而来,详情见下文。
  • 步骤3. 组合各个弱分类器,得到最终分类器。

其中sign为取符号函数。


1.3 误差界

Adaboost 分类器的训练误差的上界为:

第一个不等式证明:显然有G(xi)≠yi时,yi和f(xi)异号(yi只有-1和1两个取值,yi*f(xi)<0exp(-yi*f(xi))≥1=I(G(xi)≠yi),所以不等式恒成立。

第二个等号证明

  1. 推导步骤中第二个等号:1/n就是第一次迭代的权值,因此相等。
  2. 推导步骤中第三个等号:exp(...+...)改成连乘形式
  3. 推导步骤中第四个等号:原来的公式其实有误,少标了一个i的取值(我没有自己重新改公式)。从中取出m=1,i从1到n的项;结合公式所w1i=z1*(w2i),得到这类形式。
  4. 推导步骤中第五个等号:依次类推最终得到

这个结果说明,可以在每一轮选取适当的Gm使得Zm最小,从而使训练误差下降最快。

此外,仍然存在上界。 对于二分类而言,有如下结果:

其中,

证明如下:

  1. 第一个等号:因为是二分类,所以分类错误时,yi*f(xi)等于-1,分类正确时,yi*f(xi)等于1。
  2. 第二个等号:em实际是所有分错的权重之和,且em归一化处理过。所以1-em就是分对的权重之和。
  3. 第三个等号:am的代入。

证明如下:实际只需要比较和exp(-2),简单的令=x,对比 e^x和1-x的根号即可。如果取γ1, γ2… 的最小值,记做γ(显然,γ≥γi>0,i=1,2,...m),则对于所有m,有:

这个结论表明,AdaBoost的训练误差是以指数速率下降的。AdaBoost算法不需要事先知道下界γ,AdaBoost具有自适应性,它能适应弱分类器各自的训练误差率 。

二、加法模型与向前分步算法

2.1 加法模型

如下图所示的便是一个加法模型

其中,b()称为基函数,称为基函数的参数,称为基函数的系数。

在给定训练数据及损失函数的条件下,学习加法模型成为经验风险极小化问题,即损失函数极小化问题:

随后,该问题可以作如此简化:从前向后,每一步只学习一个基函数及其系数,逐步逼近上式,即:每步只优化如下损失函数:

这个优化方法便就是所谓的前向分步算法。

就这样,前向分步算法将同时求解从m=1到M的所有参数的优化问题简化为逐次求解各个(1≤m≤M)的优化问题。

注明:加法模型介绍这一部分完全照搬https://blog.csdn.net/v_july_v/article/details/40718799


加法模型的推导有空再写,主要是回答“为什么向前分步算法取指数作为损失函数时,与adaboost算法是完全等价的”

Adaboost 算法的公式推导与讲解相关推荐

  1. 深入浅出的 Adaboost算法

    转自知乎 :https://zhuanlan.zhihu.com/p/32960452 通俗易懂 https://zhuanlan.zhihu.com/p/30676249 数学解释 https:// ...

  2. Adaboost算法详细讲解

    转自线上数据建模 Adaboost算法详细讲解 Adaboost(Adaptive Boosting): Adaboost是Boosting模型,和bagging模型(随机森林)不同的是:Adaboo ...

  3. AdaBoost算法讲解

    原文:AdaBoost算法讲解.举例 一: 算法介绍 Adaboost算法的目标是提高学习算法(比如说LMS算法)的分类准确率.adaboost算法提供的是框架.可以使用各种学习方法构建子分类器. 对 ...

  4. AdaBoost算法讲解、举例

    一: 算法介绍 adaboost算法的目标是提高 学习算法(比如说LMS算法)的 分类准确率. adaboost算法提供的是框架 . 可以使用各种学习方法构建子分类器. 二: 算法分析 步骤: 根据训 ...

  5. Adaboost算法——详细讲解

    最近在做集成学习的时候,对Adaboost非常感兴趣,就自己复现了这个程序. 首先提升方法是基于这样的一个思想:对于一个复杂的任务来说,通将多个专家的判断进行适当的综合所得到的判断,这样得到的结果会比 ...

  6. AdaBoost算法通俗讲解

    AdaBoost是元算法中最流行的一种,也被认为是最好的监督学习的方法 . 一.元算法 元算法(meta-algorithm),也被称作集成方法(ensemble method),是对其他算法进行组合 ...

  7. 基于AdaBoost算法的情感分析研究

    源码下载 http://www.byamd.xyz/hui-zong-1/ 基于AdaBoost算法的情感分析研究 摘 要 随着互联网的快速发展,各类社交媒体平台如微信.QQ等也与日俱增,而微博更是集 ...

  8. 数据挖掘十大经典算法之——AdaBoost 算法

    数据挖掘十大经典算法系列,点击链接直接跳转: 数据挖掘简介及十大经典算法(大纲索引) 1. 数据挖掘十大经典算法之--C4.5 算法 2. 数据挖掘十大经典算法之--K-Means 算法 3. 数据挖 ...

  9. Adaboost算法原理以及matlab代码实现(超详细)

    一.AdaBoost简介 Boosting, 也称为增强学习或提升法,是一种重要的集成学习技术, 能够将预测精度仅比随机猜度略高的弱学习器增强为预测精度高的强学习器,这在直接构造强学习器非常困难的情况 ...

最新文章

  1. bootsrap的font awesome的各种图标,包括动画图标
  2. first() mysql_EF6配合MySQL或MSSQL(CodeFirst模式)配置指引
  3. python正则表达式group用法_【Python】正则表达式用法
  4. Oracle010316,安装oracle后登录时出现 ERROR: ORA-01031 insufficient privileges
  5. hdoj 1257(暴力)
  6. 拿来就能用!这本 Python 3.6 的实战书火爆了 IT 圈!
  7. C++ 优先级队列(priority_queue)
  8. pku1274 The Perfect Stall
  9. 阿里巴巴矢量图标库的引入——symbol类型的使用——阿里图标组件封装
  10. 社交网络分析算法应用,社交网络分析算法
  11. 计算机二级1px等于多少厘米,px和pt换算(1px等于多少pt)
  12. 用树形算法思想去使用思维导图\树形图\鱼骨图
  13. 7种炫酷HTML5 SVG液态水滴融合分解动画特效
  14. 一个邮箱联结全球?也许不会是遥不可及的梦想
  15. ls mac 显示最近修改日期_Mac命令行常用操作
  16. 剪不断,理还乱--Oracle的字符集乱码问题
  17. 电脑开机后没反应,如何解决?
  18. 信息收集的方法有哪些
  19. 微机原理(汇编语言)学习
  20. 对未来计算机的畅想作文1500,未来科技_1500字

热门文章

  1. 编解码学习笔记(三):Mpeg系列——Mpeg 1和Mpeg 2
  2. Deepin 任务栏网速插件推荐 NetSpeed (重构 lfxSpeed)
  3. 数字中国城市巡礼之开封:千年古都的智慧新生
  4. bzoj 2563阿狸和桃子的游戏
  5. 混合动力simulink模型 转卖新能源混动车型模式转换说明,包含HCU模式转换simulink框图及说明文档
  6. 【Android 逆向】ELF 文件格式 ( 安装 010 Editor 二进制查看工具的 ELF.bt 插件模板 | 安装 ELF.bt 模板 | 打开 ELF 文件 )
  7. 极客创新大赛|微创机器人号探索飞船即将启航
  8. [vijos 1770]大内密探
  9. paper阅读笔记:How to Fine-Tune BERT for Text Classification?
  10. 物联网的那些事----------01无线通信技术介绍