AdaBoost 是一种迭代算法,其核心思想是针对同一个训练集训练不同的分类器,即弱分类器,然后把这些弱分类器集合起来,构造一个更强的最终分类器。算法的适应性在于前一个基本分类器分错的样本会得到加强,加权后的全体样本再次用来训练下一个基本分类器。同时,在每一轮中加入一个新的弱分类器,直至达到某个预定的足够小的错误率或达到预先指定的最大迭代次数。

具体来说,整个 AdaBoost 迭代算法包含 3 个主要步骤
(1)初始化训练数据的权值分布。如果有 M 个样本,则每一个训练样本最开始时都被赋予相同的权值:1/M。

(2)训练弱分类器。在训练过程中,如果某个样本点已经被准确地分类,那么在构造下一个训练集中它的权值就被降低;相反,如果某个样本点没有被准确地分类,那么它的权值就得到提高。在 t 轮训练结束后,根据得到的弱分类器 h_t 的性能,计算该分类器对应的权值 α_t ,并由 h_t 在训练集上的分类结果对权重向量 W_i→ W_(i+1) 进行更新。接着,权值更新过的样本集用于训练下一个分类器,整个训练过程如此迭代地进行下去。

(3)将各个训练得到的弱分类器组合成强分类器。各个弱分类器的训练过程结束后,加大分类误差率小的弱分类器的权重,使其在最终的分类函数中起较大的决定作用,降低分类误差率大的弱分类器的权重,使其在最终的分类函数中起较小的决定作用。换言之,误差率低的弱分类器在最终分类器中占的权重较大,否则较小。

AdaBoost 算法的特点:

AdaBoost 是一种具有很高精度的分类器,其算法具有如下特点:

(1) 可以使用各种方法构建子分类器,AdaBoost 算法提供对其进行组合以及提升的框架。
(2) 当使用简单分类器时,计算出的结果是可以理解的。
(3) 弱分类器构造极其简单,无须做特征筛选。
(4) AdaBoost 算法简单,不用调整分类器,不会导致过拟合。

AdaBoost 算法的应用:

(1) 用于二值分类或多分类的应用场景。
(2) 用于特征选择(Feature Selection)。
(3) 无须变动原有分类器,而是通过组合出新的分类器,提升分类器的性能。


(1)D1 表示样本的初始权重分配,数据点包含两类数据,两种颜色。在 AdaBoost算法运行过程中,我们使用水平或者垂直的直线作为分类器来进行分类。算法最开始给了一个均匀分布D。因此,h_1 里的每个点的权重是0.1。

(2)利用第一个分类器进行划分,有三个数据点划分错了,根据误差公式,计算得到带权的误差为:ɛ_1 = (0.1+0.1+0.1)= 0.3。第一个分类器的权重a_1 为0.42。根据算法要求,把分错的数据点的权值变大,得到新的权重分布。


至此,根据分类的正确率得到一个新的样本权重分布 D_2 ,一个子分类器h_1。

(3)进行第2次迭代,根据分类的正确率,得到一个新的样本权重分布 D3 以及一个子分类器 h2 。

(4)计算最后一个分类器的错误率和权重,得到最后一个分类器的权重为 h3。


(5)整合所有子分类器,即对其进行加权求和。从结果中看,即使简单的分类器,组合起来也能获得很好的分类效果。

AdaBoost 算法 入门相关推荐

  1. 【MFC基础入门】基于Adaboost算法的车牌检测在OpenCV上的研究与实现

    目录结构 E:\Adaboost\---------positive\ //正样本文件夹---------pimages\ //正样本图片所在文件夹---------pos.dat //正样本集描述文 ...

  2. 【白话机器学习】算法理论+实战之AdaBoost算法

    1. 写在前面 如果想从事数据挖掘或者机器学习的工作,掌握常用的机器学习算法是非常有必要的,常见的机器学习算法: 监督学习算法:逻辑回归,线性回归,决策树,朴素贝叶斯,K近邻,支持向量机,集成算法Ad ...

  3. AdaBoost算法概述

    本文为本人另两篇博客机器学习/计算机视觉(cv)实习面试资料整理(附字节.阿里.腾讯.美团面经).机器学习知识点整理以及集成树知识点概括下的子内容,有需要的朋友按需自取~ 另:本文只是知识点的整理概括 ...

  4. 04 集成学习 - Boosting - AdaBoost算法构建

    03 集成学习 - Boosting - AdaBoost算法原理 十.AdaBoost算法构建 上一章最后说明了每个基模型的权值α是如何求得的,于是我就可以对模型进行更新操作了. 构建过程一 1.假 ...

  5. 基于Adaboost算法的人脸检测分类器!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:陈锴,Datawhale优秀学习者,中山大学数学系 人脸检测属于计 ...

  6. Adaboost 算法的原理与推导

    Adaboost 算法的原理与推导 0 引言 一直想写Adaboost来着,但迟迟未能动笔.其算法思想虽然简单:听取多人意见,最后综合决策,但一般书上对其算法的流程描述实在是过于晦涩.昨日11月1日下 ...

  7. 机器学习知识点(十六)集成学习AdaBoost算法Java实现

    理解http://blog.csdn.net/fjssharpsword/article/details/61913092中AdaBoost算法,从网上找了一套简单的代码加以理解. 1.基分类器,实现 ...

  8. 如何求解问题--数据结构与算法入门

    如何求解问题–数据结构与算法入门 在学习数据结构与算法前,我们大多有这样的困惑,难道学习了数据结构与算法就能帮助我们解决学习Java.Python时的大作业吗?数据结构与算法是什么? 回答这个问题之前 ...

  9. LESSON 11.4 原理进阶:AdaBoost算法流程详解

    2 原理进阶:AdaBoost的求解流程 在使用AdaBoost算法时,我们并不需要对AdaBoost的具体求解流程掌握太过于深入.严格来说,只要知道参数的含义,即便我们完全不了解AdaBoost的求 ...

最新文章

  1. 登陆成功率 99%,云知声携手平安好医生推声纹登录系统
  2. 硕博士申请--阿德莱德大学 AI组介绍(含组员/顶会论文等)
  3. PWA(Progressive Web App)入门系列:消息通讯
  4. python五十三:组合的方式完成授权
  5. 三星关闭shell提示_凌晨系统崩溃,低级千年虫问题,三星就是这样将中国市场拱手相让...
  6. 每天被远程办公支配的恐惧,你怕了吗?
  7. SAP UI5 Tools 使用简介
  8. SE81 - Application hierarchy CSS component tree
  9. python假如输入错误重新输入_用Python写一个拼音输入法
  10. yum快速安装mysql
  11. SSH中 三大框架的各自的作用及好处
  12. 幅值与峰峰值的计算_正弦波的幅度指的是峰值还是峰峰值
  13. GB28181国标平台资料整理
  14. 【Kafka】ZK、Kafka以及EFAK的安装、配置
  15. ARFoundation多图切换识别
  16. 科技云报道:乘风破浪的联通沃云,是一朵安全可控的国产云
  17. 计算机三级选择难点及解析
  18. “人货场”模型,该怎么搭建?
  19. c++单链表 一元多项式求和_C++一元多项式相加
  20. 爬虫实战 | 采集可视化知乎问题的回答

热门文章

  1. LeetCode 427. 建立四叉树(递归)
  2. 协程asyncio_Asyncio深入浅出
  3. python最好用的助手_推荐5款好用的Python工具
  4. 微信小程序的不同函数调用的几种方法
  5. Hadoop DistCp工具简介及其参数
  6. 分组统计 - DataFrame.groupby() 所见的各种用法 - Python代码
  7. 灰色关联分析_灰色关联分析模型研究综述
  8. AI从业几年还不具备提出新模型的技术能力?看这个就够了!
  9. 报名 | 全国知识图谱与语义计算大会(CCKS 2019)评测任务发布
  10. 论文浅尝 | 面向单关系事实问题的中文问答模型