(七)AdaBoost 简介

R语言:Adaboost算法的实现——adabag 在前一篇文章中,我们介绍了Adaboost算法,本文我们将着重介绍其R语言的实现。 数据简介 本文数据选择了红酒质量分类数据集,这是一个很经典的数据集,原数据集中“质量”这一变量取值有{3,4,5,6,7,8}。为了实现二分类问题,我们添加一个变量“等级”,并将“质量”为{3,4,5}的观测划分在等级0中,“质量”为{6,7,8}的观测划分在等级1中。 数据下载戳我 因变量:质量 自变量:非挥发性... 阅读详情

作者:chen_h
微信号 & QQ:862251340
微信公众号:coderpai


(一)机器学习中的集成学习入门

(二)bagging 方法

(三)使用Python进行交易的随机森林算法

(四)Python中随机森林的实现与解释

(五)如何用 Python 从头开始实现 Bagging 算法

(六)如何利用Python从头开始实现随机森林算法

(七)AdaBoost 简介


Boosting 是一种集成技术,试图从许多弱分类器中创建一个强分类器。这篇文章中,我们将介绍 AdaBoost 方法。读完这篇文章后,你会知道:

  • boosting 算法的基本工作原理;
  • 如何学习使用 AdaBoost 算法提升决策树;
  • 如何使用学习过的 AdaBoost 模型进行预测;
  • 如何最好的准备数据以与 AdaBoost 算法一起使用;

这篇文章是为开发人员编写的,没有统计学或者数学背景。该文章重点介绍了算法的工作原理以及如何将其用于预测建模问题。如果你有任何疑问,可以在后台留言。那么,我们开始吧。

Boosting 集成方法

Boosting 是一种通用的集成方法,可以从许多弱分类器中创建强分类器。这是通过从训练数据构建模型,然后通过构建第二个模型来纠正第一个模型所犯的错误。直到添加的模型达到最大数量或者达到完美预测。AdaBoost 是第一个成功开发的 Boosting 算法,如果学习这个算法能更好的帮助我们学习。现代很多的 boosting 算法都是建立在 AdaBoost 算法之上的,最著名的就是随机梯度提升。

从数据中学习 AdaBoost 模型

AdaBoost 最适合用于提高决策树在二元分类问题上的性能。

AdaBoost 最初被作者 Freund 和 Schapire 称为 AdaBoost M1。最近,它又被称为离散AdaBoost,因为它用于分类而不是回归。

AdaBoost 可用于提高任何机器学习算法的性能。它最适合弱学习器使用,这些模型在分类问题上实现了高于随机模型的准确性。

与 AdaBoost 一起使用的最适合的是具有一层结构的决策树。因为这些树很短,只包含一个分类决策,所以它们通常被称为决策树桩。

训练数据集中的每个实例都是需要加权的,初始权重设置为:

​ w e i g h t ( x i ) = 1 / n weight(xi) = 1/n weight(xi)=1/n

其中, x i x_i xi​ 是第 i 个训练实例,n 是训练实例的数量。

如何训练一个模型

使用加权样本在训练数据上准备弱分类器(决策树桩)。这个模型只支持二分类问题,因此每个决策树桩对一个输入变量做出一个决策,并为第一类或者第二类值输出 1.0 或者 -1.0 。

针对训练的模型计算错误分类率。传统上,计算如下:

e r r o r = ( c o r r e c t – N ) / N error = (correct – N) / N error=(correct–N)/N

其中 error 是错误分类率,correct 是被模型正确分类的数量,N 是训练实例的总数。例如,如果模型正确预测了 100 个训练实例中的 78 个,则错误或者错误分类率将为 (100-78)/ 100 或者 0.22 。

但是我们需要修改训练实例的错误:

e r r o r = s u m ( w ( i ) ∗ t e r r o r ( i ) ) / s u m ( w ) error = sum(w(i) * terror(i)) / sum(w) error=sum(w(i)∗terror(i))/sum(w)

这是错误分类率的加权和,其中 wi 是训练实例 i 的权重,terror 是训练实例 i 的预测误差,如果错误分类则为 1,如果正确分类则为 0 。

例如,如果我们有 3 个训练实例,其权重为 0.01,0.5和0.2。预测值为 -1,-1和-1,实例中的真确输出变量为 -1,1和-1。那么 terror 为 0,1和0。误分类率计算如下:

error = (0.010 + 0.51 + 0.2*0) / (0.01 + 0.5 + 0.2) = 0.704

为训练模型计算阶段值,该阶段值为模型所做的任何预测提供加权。训练模型的阶段值计算如下:

stage = ln((1-error) / error)

其中,stage 是用于对模型进行加权预测的阶段值,ln() 是自然对数,而 error 是模型的错误分类。阶段权重的影响是更准确的模型对最终预测具有个更大的权重或者贡献。

更新训练权重,为错误预测的实例提供更多权重,对正确预测的实例权重更小。

例如,使用以下内容更新一个训练实例(w)的权重:

w = w * exp(stage * terror)

其中,w 是特定训练实例的权重,exp() 是数字常数 e ,stage 是弱分类器的误分类率,terror 是弱分类器预测输出变量的误差,具体计算为:

terror = 0 if(y == p), otherwise 1

其中 y 是训练实例的输出变量,p 是来自弱分类器的预测。

如果训练实例被正确分类了,那么权重不会发生变化,如果训练实例没有被正确分类,那么权重就会相应的增大。

使用 AdaBoost 进行预测

通过计算弱分类器的加权平均值来进行预测。

对于新的输入实例,每个弱分析器计算预测值为 +1 或者 -1。预测值由每个弱学习器的阶段值进行加权。集成模型的预测被视为加权预测的总和。如果总和为正,则预测第一类,如果为负,则预测第二类。

例如, 5 个弱分类器的预测值为 1,1,-1,1和-1。从大多数投票看,模型看起来预测值为 1 或者第一类。但是我们还要计算权重,假设权重值为 0.2,0.5,0.8,0.2和0.9。计算这些预测的加权和,最终输出为 -0.8 ,这将是 -1 或者第二类的预测。

总结

在这篇文章中,你发现了用于机器学习的 boosting 方法,你可以了解到:

  • 提升算法将弱分类器变成强分类器;
  • AdaBoost 是第一个成功运用的boosting算法;
  • 通过加权训练实例和弱分类器来学习 AdaBoost 模型;
  • 通过加权来自弱分类器的预测来学习 AdaBoost 模型;
Boost和AdaBoost算法原理简介 本文主要参考: 1):《AdaBoost分类算法》http://wenku.baidu.com/link?url=udZ32_5hjlVNuqOAhuCEDPpHcQTEwEAxBiPkkPmPSMKqVLEslUXtpWLnX8gfgvfiZirOkJnqSQm1JnTUTM8WaPCaTMA_x6b_-xQEuWl_hcy 2): Adaboost 算法及原理 http://wenku. 阅读详情

相关推荐

机器学习(七):AdaBoost算法(基础篇)

机器学习(七):AdaBoost算法(基础篇) 小谈 机器学习算法中有很多种分类器,它们各有各自的优缺点。那我们可不可以想一个办法,结合全部分类的优点,当然,这是不可能的。但是我们可以将这些不同的分类方法组合起来,而这种方法,前人已经用过。这种组合结果则被称为**集成方法(ensemble method)或者元算法(meta-algorithm)。**使用集成方法时会有多种形式:可以是不同算法的集...

Auraros的博客 1226

集成学习—Adaboost(论文研读)

Adaboost是Yoav Freund和Robert E. Schapire在1995年的the Second European Conference on Computational Learning Theory首次提出(详见Proceedings of the Second European Conference on Computational Learning Theory, Barc...

weixin_44750583的博客 1万+

[转]Adaboost/Boosting算法简介

转载,来自:http://stblog.baidu-tech.com/?p=19 一、Boosting算法的发展历史   Boosting算法是一种把若干个分类器整合为一个分类器的方法,在boosting算法产生之前,还出现过两种比较重要的将多个分类器整合为一个分类器的方法,即boostrapping方法和bagging方法。我们先简要介绍一下bootstrapping方法和baggi

Polly Study PRIS 3834

AdaBoost 论文(转)

from (视觉模式分析实验室 http://1817104713.qzone.qq.com) Peng Wang; Chunhua Shen; Barnes, N.; Hong Zheng, "Fast and Robust Object Detection Using Asymmetric Totally Corrective Boosting," IEEE Tran

j_study的专栏 2249

Adaboost经典论文

Adaboost经典论文

adaboost资源,包括toolbox和参考文献,应用论文等

网上下载的包括本网站和百度,谷歌等搜索到的adaboost的资料。包括adaboost toolbox,参考文献, 应用论文等。

boosting方法浅析——从Adaboost到GBDT

1. 何为boosting方法(提升方法)? 常见的集成学习方法有两种:bagging和boosting。 bagging方法,以随机森林为代表。bagging方法主要通过对数据集抽样来改变数据的分布,再针对不同的抽样集分别单独训练基分类器,最后将基分类器结合起来成一个强分类器。bagging最常用的是有放回的自主采样法,这也是bagging方法名字的由来。它的基分类器的常见结...

weixin_30950607的博客 386

ARM双核锁步DCLS Lockstep技术研究(FPGA实现)

基于《Applying Dual-Core Lockstep in Embedded Processors to Mitigate Radiation-induced Soft Errors》文章总结 RISC-V双核锁步DCLS Lockstep技术参考之前文章: RISC-V双核锁步DCLS Lockstep技术总结_远古架构师alanwu的博客-优快云博客https://blog.youkuaiyun.com/heyuming20062007/article/details/123329537ARM+RIS

heyuming20062007的博客 8730

【机器学习】boosting集成学习Adaboost

一、什么是Adaboost AdaBoost,是英文"Adaptive Boosting"(自适应增强)的缩写,由Yoav Freund和Robert Schapire在1995年提出。它的自适应在于:前一个基本分类器分错的样本会得到加强,加权后的全体样本再次被用来训练下一个基本分类器。同时,在每一轮中加入一个新的弱分类器,直到达到某个预定的足够小的错误率或达到预先指定的 最大迭代次数。 ...

小马日记 386

别再到处找包了!Keil5芯片支持包(Pack)最全管理指南:安装、更新、迁移与离线备份

本文详细解析了Keil5芯片支持包(Pack)的全生命周期管理,包括安装、更新、迁移与离线备份的工程化解决方案。针对STM32F10x等常见芯片,提供了高效获取Pack的策略、版本管理技巧及团队协作方案,帮助开发者解决常见的'Device Family Pack missing'等问题,提升嵌入式开发效率。

weixin_28729205的博客 542

基于AdaBoost算法的人脸检测经典论文研究之三

自从2001年Viola和Jones发表了《rapid object detection using a boosted cascade of simple features》的文章以后,在学术界和商业界研究人脸检测的热情就朝向了adaboost算法,也发表了很多文献可供参考学习。但是如何训练分类器却现有文献参考。所以,本文在本文在Viola和Jones人脸检测算法构建的框架下,从理论的角度分析其可行性,从是实验的角度形成的详细的训练过程,弥补的如何训练人脸检测分类器方面文献的空白。

迷途中的前进 2690

Landsat 9 数据预处理第一步:在ENVI里正确加载影像的保姆级指南(含MTL文件处理)

本文详细介绍了Landsat 9数据在ENVI中的预处理流程,重点讲解了MTL文件的关键修改与正确加载方法,帮助遥感新手快速掌握数据加载技巧。通过辐射定标、大气校正等步骤,确保数据达到分析就绪状态,适用于土地覆盖分类等高级应用。

weixin_29201313的博客 208

EL之AdaBoost:集成学习之AdaBoost算法的简介、应用、经典案例之详细攻略

EL之AdaBoost:集成学习之AdaBoost算法的简介、应用、经典案例之详细攻略 目录 AdaBoost算法的简介 1、理解AdaBoost算法 1.1、从前向逐步递增角度来看理解AdaBoost:要找到最优的f很难→每次递增。 1.2、前向逐步递增的损失函数—L2Boosting 2、AdaBoost M1算法证明过程 AdaBoost算法的经典案例 1、预测马疝病是...

头部AI社区如有邀博主AI主题演讲请私信—心比天高,仗剑走天涯,保持热爱,奔赴向梦想!低调,专注,谦虚,自律,反思,成长,还算比较正能量的博主,公益免费传播…内心特别想在AI界做出一些可以推进历史进程影响力的技术(兴趣使然,有点小情怀,也有点使命感呀 1万+

从零搭建风电场:手把手教你用WAsP+WindPRO完成风资源评估全流程

本文详细介绍了从零开始搭建风电场的全流程,重点讲解如何使用WAsP和WindPRO进行风资源评估和风场布局优化。内容包括软件配置、数据采集规范、风图谱建模实战、机组选型策略以及常见问题解决方案,帮助工程师掌握风电开发的核心技术,提升项目成功率。

year5的博客 373

手把手教你用Wireshark国密版分析TLCP和IPSec协议(附下载地址)

本文详细介绍了Wireshark国密版在TLCP和IPSec协议分析中的实战应用,包括环境配置、协议解析、合规性检查及高级分析技巧。该工具针对商用密码算法(如SM2/SM3/SM4)进行了专项优化,支持GB/T 38636-2020 TLCP和GB/T 36968-2018 IPSec VPN等国家标准,帮助开发者与安全工程师高效完成密评分析任务。

weixin_29325955的博客 555

adaboost mh matlab,adaboost、adaboost.m1、adaboost.m2简介

集成学习常见的两种集成方案为bagging和boosting,其中bagging是一种基于投票的并行方案,boosting是一种基于改变原始数据集分布的迭代串行方案(某些环节也可并行)。bagging的代表算法为随机森林,boosting的代表算法有adaboost、gbdt、xgb等。bagging方案图:从训练集从进行子抽样组成每个基模型所需要的子训练集,对所有基模型预测的结果进行综合产生最终...

weixin_29100399的博客 862

你的小程序地图功能还只是“摆设”吗?支付宝地图API的深度玩法都在这里了!

🏆本文收录于《滚雪球学支付宝小程序开发》专栏,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收藏&&订阅!持续更新中,up!up!up!!

**My Coding Family** 1823

Adaboost算法实现二

终于把这个Adaboost算法的源码看完了,基本了解了算法。对于一些地方还是存在疑问,不知道为啥要这样处理,如相似性度量。           测试了好几个例子,感觉Adaboost对样本分类的效果还不错,但是对于预测,正确率也就70%-80%,不是很高,感觉应该是比较低的了,应该有改进的措施,还没来得及看。           用主程序中的一段代码对adaboost算法做下自己的总结。

lskyne的专栏 4536

Moviepy自动化剪辑视频中的广告

本教程展示了如何使用 Python 中的 MoviePy 库,通过检测和剪辑广告段落来实现视频内容的清洁播放。通过广告检测算法和 MoviePy 剪辑功能的结合,可以自动化处理视频,极大提升编辑效率。在学习和应用中,理解广告检测的原理及其实现方法尤为重要,以便针对不同类型的视频进行调整。此外,MoviePy 的灵活性使其适用于多种视频编辑场景,适合自动化内容制作与优化。

Mr数据杨 3418

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

AdaBoost 算法简介

1、算法简介:        AdaBoost(Adaptive Boosting)算法是一种原理简单的有监督的机器学习算法。它的发展与一个非常有趣的理论有关,即强学习算法与弱学习算法的等价性问题,能否使用弱分类器和多个实例来构建一个强分类器。这里的“弱”是指分类器的性能比随机猜测略好,但也不会好太多;而“强”是指识别错误率很高并能在多项式时间内完成。可以分析的是,如果以上猜想成立,即二者等价,

杂的文 3228

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

AdaBoost 简介【译】

原文:AdaBoost 简介 目前的集成学习(Ensemble Learning)方法大致可分为两类:一是个体学习器之间存在强依赖关系、必须串行生成的序列化方法,代表算法是Boosting;二是个体学习器之间不存在强依赖关系,可同时生成的并行方法,代表算法是 Bagging 和 “随机森林(Random Forest)”。 首先要知道 AdaBoost(adaptive boosting) 算法是...

Wisimer 862

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

AdaBoost算法

介绍了boosting集成学习思想的经典算法adaboost算法的实现

YIAN爱学习的博客 1171

Adaboost改进方法(AdaBoost_RT,AdaBoost_RT,AdaBoost_DBSCAN)

print('训练集数量:',X_train.shape,'测试集数量:',x_test.shape) #结果表明每次划分的数量。# #print('训练集数量:',X_train.shape,'测试集数量:',x_test.shape) #结果表明每次划分的数量。#print('训练集数量:',X_train.shape,'测试集数量:',x_test.shape) #结果表明每次划分的数量。

2403_87476434的博客 806

python实现AdaBoost算法

★ AdaBoost的理解: 对于二分类而言,我们通过一个阈值threshVal将数据集划分为两种分类(正类和负类),而这个阈值就是我们所说的分割线,只不过它总是平行于坐标轴(因为我们取的基分类器是单层决策树): 对于上述数据集,一个基分类器即可将其分类,但是对于大多数训练集而言,一个基分类器是不足够的,比如: 在图3中,我们找...

weixin_42051109的博客 1万+

【机器学习】Boosting 和 AdaBoost

AdaBoost自适应提升学习算法和Boosting考虑的点一样(观察下图)(1)不同的训练集--->调整样本权重(2)“关注”--->增加错分样本权重(3)“器重”--->好的分类器权重大(4) 样本权重间接影响分类器权重AdaBoost算法提高那些被前一轮基分类器错误分类样本的权值,而降低那些被正确分类样本的权值。从而使得那些没有得到正确分类的样本,由于权值的加大而受到后一轮基分类器的更大关注。AdaBoost采用加权多数表决的方法。分类误差率较小的弱分类器的权值大,在表决中起较大作用。

2301_76820214的博客 2412
上一篇: 利用 Numba 加速 Python 程序,提速几十倍
下一篇: (八)Python 中的 AdaBoost 分类器实例
coderpai
博客等级 码龄10年 1082粉丝 469原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值