AdBoost算法详解

  • 1 算法简介
    • 1.2AdaBoost特点
    • 1.3Bagging与AdaBoost区别
  • 2AdaBoost算法步骤
  • 3 AdaBoost的数学定义
  • 4 推广到多分类

算法引入:
 对于Boosting算法,存在两个问题
  在每一轮中如何调整训练集,使训练的弱分类器得以进行
  如何将各个弱分类器联合起来形成强分类器
 Boosting框架中的代表算法是AdaBoost算法.

1 算法简介

属于集成学习中的串行学习方法.
AdaBoost自适应提升算法和Boosting考虑的点一样
AdaBoost自适应在于:’’关注”被错分的样本,”器重”性能好的弱分类器
 不同的训练集–>调整样本的权重
 “关注”—>增加错分样本权重
 “器重”---->好的分类器权重大
 样本权重间接影响分类器权重

1.2AdaBoost特点

AdaBoost把多个不同的弱分类算法,用一种随机的方式组合起来,表现出惊人的性能.
 1.可以使用各种方法构建子分类器(弱分类器),AdaBoost算法提供的是框架
 2.子分类器容易构造
 3.速度快,且基本不用调参数
 4.泛化误差率低

1.3Bagging与AdaBoost区别

 Bagging算法:并行,提供的是我们抽样(62.3%)后的数据集进行并行训练(好像是取结果的平均值,所以才减小方差)
 AdaBoost算法:串行,根据全部数据集建立模型,关注偏差.

2AdaBoost算法步骤

 1.初始化训练数据的权值分布:假设有N个样本,每个样本赋予相同权值1/N
 2.训练弱分类器:本轮训练中,提高错分样本的权值,相反分类正确的样本降低权值.然后,权值更新后的全部样本被用于训练下一个分类器,使得下一个分类器更加关注权值大的难分样本.多次迭代,训练多个弱分类器
 3.加权组合弱分类器:加大分类误差率小的弱分类器权重,使其在最终表决中起较大作用,而降低分类误差率大的弱分类器的权重,使其在最终表决汇总起较小作用
示例:


图1 下面的两个蓝色的圆形表示被分错的两个样本,所以可以在图2中看到他们的权重加大了,其他分类正确的样本的权重减少了
图4就是前面三个弱分类器加权组合后,用相同的数据集得到的二分类结果

3 AdaBoost的数学定义

这部分主要是知道了数据集样本的权值是怎么更新的,弱分类器的权重是怎么计算出来的.

可以把xi理解为一个多个维度组成的一个x

wi就是一个样本权值集合

用有权值分布的数据集去弱分类器中训练. 因为这里的弱分类器都是二分类器,且预测值都为-1,1
弱分类器,输出的结果只有-1,1

其中这个函数的理解:
弱分类器的预测结果与样本对应的真实结果yi不相等时返回1,相等时返回0



em是当前弱分类器误分类样本的权重之和,1-em是当前弱分类器正确分类样本的权重之和


这里Zm的作用:
使上面公式中所有样本求得的Wmi*e-αm值分别除以Zm之后,数据集样本的权值之和为1,可以理解为权值的归一化处理


因为最终的分类器也要是一个二分类器,所以对基本分类器权值的线性组合后要做进一步的处理,由sign函数知道y的取值只能为-1,+1
补充:AdaBoost算法的损失函数用的是指数损失(指数损失用在分类问题中)

4 推广到多分类

 多分类问题可以使用二分类问题的思想来解决问题,ovr,ovo.

AdBoost算法详解相关推荐

  1. Matlab人脸检测算法详解

    这是一个Matlab人脸检测算法详解 前言 人脸检测结果 算法详解 源代码解析 所调用函数解析 bwlabel(BW,n) regionprops rectangle 总结 前言 目前主流的人脸检测与 ...

  2. 图论-最短路Dijkstra算法详解超详 有图解

    整体来看dij就是从起点开始扩散致整个图的过程,为什么说他稳定呢,是因为他每次迭代,都能得到至少一个结点的最短路.(不像SPFA,玄学复杂度) 但是他的缺点就是不能处理带负权值的边,和代码量稍稍复杂. ...

  3. C++中的STL算法详解

    1.STL算法详解 STL提供能在各种容器中通用的算法(大约有70种),如插入.删除.查找.排序等.算法就是函数模板,算法通过迭代器来操纵容器中的元素.许多算法操作的是容器上的一个区间(也可以是整个容 ...

  4. 粒子群(pso)算法详解matlab代码,粒子群(pso)算法详解matlab代码

    粒子群(pso)算法详解matlab代码 (1)---- 一.粒子群算法的历史 粒子群算法源于复杂适应系统(Complex Adaptive System,CAS).CAS理论于1994年正式提出,C ...

  5. 基础排序算法详解与优化

    文章图片存储在GitHub,网速不佳的朋友,请看<基础排序算法详解与优化> 或者 来我的技术小站 godbmw.com 1. 谈谈基础排序 常见的基础排序有选择排序.冒泡排序和插入排序.众 ...

  6. 目标检测 RCNN算法详解

    原文:http://blog.csdn.net/shenxiaolu1984/article/details/51066975 [目标检测]RCNN算法详解 Girshick, Ross, et al ...

  7. Twitter-Snowflake,64位自增ID算法详解

    Twitter-Snowflake,64位自增ID算法详解 from: http://www.lanindex.com/twitter-snowflake%EF%BC%8C64%E4%BD%8D%E8 ...

  8. 数据结构与算法详解目录

    数据结构与算法详解是一本以实例和实践为主的图书,主要是经典的数据结构与常见算法案例,来自历年考研.软考等考题,有算法思路和完整的代码,最后提供了C语言调试技术的方法. 后续配套微课视频. 第0章  基 ...

  9. [搜索]波特词干(Porter Streamming)提取算法详解(2)

     接[搜索]波特词干(Porter Streamming)提取算法详解(1), http://blog.csdn.net/zhanghaiyang9999/article/details/4162 ...

最新文章

  1. JS判断数字字母中文
  2. c语言多关卡推箱子程序,多关卡地图推箱子游戏
  3. 不好意思,你这个加分理由不行……
  4. 【源码】2012年斗地主结构算法公布(斗地主结构算法)
  5. 巧用计算机教授小学英语,巧用微课构建小学英语课堂教学
  6. 合并数字 — m个数字消除相邻的差的绝对值为1的两个数中较大的那一个,直到没有两个相邻的差的绝对值为 1 的数(动态数组定义)
  7. 良好的XHTML编写习惯
  8. Python入门之面向对象module,library,package之间区别
  9. 昆石VOS2009/VOS3000 2.1.6.00 新功能介绍目录
  10. Windows 下Maven安装配置(本地仓库配置)
  11. 博途V15添加GSD文件
  12. C++中单独大括号的意义
  13. 考研英语(四)——名词性从句
  14. 拓新药业301089
  15. Sql server 去除字段回车换行符
  16. 整理layUI初始化表格,监听等 + 表格拖曳(tableDnD插件)
  17. 【小波滤波】基于小波变换的噪声信号滤波处理matlab仿真
  18. 基于51单片机的光照强度检测c语言程序,基于51单片机光照强度检测报告.doc
  19. android打电话,接电话,挂电话过程
  20. 河南企服网:语音自动外呼机器人效果好吗?

热门文章

  1. Rsync下行同步+inotify实时同步介绍和部署
  2. 详解FTP服务完成Linux和WIN10之间的信息传输(实验详解)
  3. 南京晓庄学院计算机网络试卷,南京晓庄学院计算机网络8套卷(完整含答案)
  4. html5 背景拼贴,AI创建漂亮的无缝拼贴图案背景样式
  5. #ps –ef_常用Linux中ps命令学习及ps aux与ps -ef的区别
  6. python 图片地址_python解码data:image开头的图片地址
  7. linux界面版admin,linux下Nginx+Django Admin界面无样式问题解决方法
  8. python两个数相加时_两数相加 leetcode Python
  9. 河海大学2019计算机考研分数线,河海大学2019年硕士研究生复试分数线
  10. 2017年9月分c语言,2020年9月中国编程语言排行榜