AdaBoost:皮匠法,三个臭皮匠赛过诸葛亮;;

boosting 一种和 bagging(Bootstrap AGgregation)很类似的技术,不论是在 boosting 还是在 BAGging 中,所使用的多个分类器的类型都是一致的

但在 boosting 之中,不用的分类器是通过串行训练(存在先后顺序)得到的,每个分类器都根据已训练出的分类器的性能来进行训练。boosting 通过关注被已有分类器错分的那些数据来获得新的分类器。

由于 boosting 分类的结果是基于所有分类器的加权求和,因此 boosting 和 BAGging 不太一样。BAGging 中的权重是相等的,而boosting 中的分类器的权重并不相等,每个权重代表的是其对应分类器在上一轮迭代中的成功度。

weighted base algorithm

Euin(h)=1N∑n=1Nun⋅L(yn,h(xn))

E_{in}^u(h)=\frac1N\sum_{n=1}^Nu_n\cdot L(y_n,h(x_n))
unu_n 就表示每个样本 (xn,yn)(x_n,y_n) 的权重;

看到没,这其实是一个模型框架,加权损失函数,LL 当然可以换做 SVM 的代价函数,LL 也可以是 Logistic Regression 的损失函数。

权重的构造(更新)

tt 时刻训练得到的分类器为 gtg_t,我们构造 t+1t+1 时刻的权重 u(t+1)\mathbf{u}^{(t+1)},使得(也即 gtg_t 在新的权重下的表现就像抛硬币一样,fifty-fifty):

∑n=1Nut+11yn≠gt(xn)∑n=1Nu(t+1)=12

\frac{\sum\limits_{n=1}^Nu^{t+1}1_{y_n\neq g_t(x_n)}}{\sum\limits_{n=1}^Nu^{(t+1)}}=\frac12
而 ∑n=1Nu(t+1)=∑n=1Nu(t+1)1yn≠gt(xn)+∑n=1Nu(t+1)1yn=gt(xn)\sum\limits_{n=1}^Nu^{(t+1)}=\sum\limits_{n=1}^Nu^{(t+1)}1_{y_n\neq g_t(x_n)}+\sum\limits_{n=1}^Nu^{(t+1)}1_{y_n=g_t(x_n)}。

我们记 ϵt=∑n=1Nut+11yn≠gt(xn)∑n=1Nu(t+1)\epsilon_t=\frac{\sum\limits_{n=1}^Nu^{t+1}1_{y_n\neq g_t(x_n)}}{\sum\limits_{n=1}^Nu^{(t+1)}}

ϵtα=(1−ϵt)α

\epsilon_t\alpha=\frac{(1-\epsilon_t)}\alpha
解得 α=1−ϵtϵt−−−−√\alpha=\sqrt{\frac{1-\epsilon_t}{\epsilon_t}}。

当且仅当 ϵt≤12\epsilon_t\leq \frac12 (你的 base algorithm 比乱猜好一点)时,α≥1\alpha\geq 1,意味着:

  • (1)scale up incorrect samples(放大已有分类器错分的样本)
  • (2)scale down correct samples

这正是 AdaBoost 的做法,通过放大已有分类器错分的样本来训练得到不同 diverse hypothesis。

AdaBoost 的构成:

  • (1)weak base learning algorithm

  • (2)optimal re-weighing factor:1−ϵtϵt−−−−√\sqrt{\frac{1-\epsilon_t}{\epsilon_t}}

  • (3)linear aggregation αt\alpha_t:αt=12ln1−ϵtϵt\alpha_t=\frac12\ln \frac{1-\epsilon_t}{\epsilon_t}

G(x)=sign(∑t=1Tαtgt(x))

G(\mathbf{x})=\text{sign}\left ( \sum_{t=1}^T\alpha_tg_t(\mathbf{x})\right )

机器学习基础(十七)—— boosting相关推荐

  1. 机器学习基础与实践(二)----数据转换

    ------------------------------------本博客所有内容以学习.研究和分享为主,如需转载,请联系本人,标明作者和出处,并且是非商业用途,谢谢!-------------- ...

  2. 流行于机器学习竞赛的Boosting,这篇文章讲的非常全了

    作者 | AISHWARYA SINGH 译者 | 武明利,责编 | Carol 出品 | AI科技大本营(ID:rgznai100) 你能说出至少两种机器学习中的 Boosting 吗? Boost ...

  3. 【机器学习基础】数学推导+纯Python实现机器学习算法26:随机森林

    Python机器学习算法实现 Author:louwill Machine Learning Lab 自从第14篇文章结束,所有的单模型基本就讲完了.而后我们进入了集成学习的系列,整整花了5篇文章的篇 ...

  4. 流行于机器学习竞赛的Boosting,一文讲透足够了

    作者 | AISHWARYA SINGH 译者 | 武明利,责编 | 夕颜 出品 | AI科技大本营(ID:rgznai100) 你能说出至少两种机器学习中的 Boosting 吗? Boosting ...

  5. 水很深的深度学习-Task02机器学习基础

    机器学习基础 目录 机器学习基础 一.什么是机器学习? 如何寻找这个函数? 机器学习三板斧 学习路线 二.机器学习算法的类型 1. 有监督学习 2. 无监督学习 3. 强化学习 4.机器学习算法的系统 ...

  6. 机器学习--机器学习基础

    机器学习(Machine Learning ) --机器学习基础 机器学习 概述 机器学习(Machine Learning,ML) 是使用计算机来彰显数据背后的真实含义,它为了把无序的数据转换成有用 ...

  7. 计算机视觉面试宝典--深度学习机器学习基础篇(四)

    计算机视觉面试宝典–深度学习机器学习基础篇(四) 本篇主要包含SVM支持向量机.K-Means均值以及机器学习相关常考内容等相关面试经验. SVM-支持向量机 支持向量机(support vector ...

  8. 机器学习 —— 基础整理(六)线性判别函数:感知器、松弛算法、Ho-Kashyap算法...

    这篇总结继续复习分类问题.本文简单整理了以下内容: (一)线性判别函数与广义线性判别函数 (二)感知器 (三)松弛算法 (四)Ho-Kashyap算法 闲话:本篇是本系列[机器学习基础整理]在time ...

  9. 【Python机器学习】之 Boosting算法

    Boosting 1.Boosting 1.1.Boosting算法 ​ Boosting算法核心思想: 1.2.Boosting实例 ​ 使用Boosting进行年龄预测: 2.XGBoosting ...

  10. 机器学习(1)机器学习基础 鸢尾花数据集

    目录 一.机器学习基础理论 1.机器学习过程 2.机器学习分类 3.数据集返回值介绍 二.鸢尾花数据集(实战) 1.首先是获取数据集 2.显示数据集信息(可以不要) 三.数据集划分 1.数据集划分AP ...

最新文章

  1. R语言使用table1包绘制(生成)三线表、使用单变量分列构建三线表、为指定变量添加单位信息、自定义overall的标签名称
  2. ThreadPoolExecutor运转机制详解(转)
  3. SAP CRM WebClient UI上UI标签文本的显示逻辑
  4. wxpython下载很慢_为什么WxPythons运动检测速度如此之慢?
  5. Delphi:第一个hello world程序
  6. crash分析中有用的管道命令
  7. 找回 linux root密码的几种方法
  8. ubuntu mysql开发_Ubuntu下进行基于MySQL的JDBC的开发
  9. add git 的文件 移除_本地删除文件后让git服务器也删除这个文件
  10. 190220每日一句
  11. Android 开发工具一键下载
  12. Macsome Spotify Downloader for Mac(Spotify音乐转换下载器)
  13. java删除浏览器cookies_清除浏览器cookie
  14. sqlmap之tamper绕过
  15. docker-compose配置固定网段Pool overlaps with other one on this address space
  16. 即时聊天软件与开放平台
  17. freeradius在AP控制器设备中test-aaa 显示timeout的解决方案
  18. 【JavaEE】进入Web开发的世界-CSS
  19. hutool 解读(三)—— IO流
  20. 股票每天最高最低价的黄金分割线买卖点标记

热门文章

  1. MySQL的 配置文件编写
  2. 详解:离线项目一: 为什么大数据面前没有秘密
  3. c语言源程序总是由一个或多个函数组成,2016年中山大学卡内基梅隆大学C语言程序设计复试笔试仿真模拟题...
  4. Pandas——concat(合并)
  5. Win10+VS2015+CUDA9.0 环境搭建
  6. php fopen 清空文件内容,如何在c语言中清空文件里的内容?
  7. c++多线程——同步并发
  8. 远程出发jenkins jobs
  9. [iOS]UIDynamicAnimator动画
  10. mysql中timestamp的自动生成与更新