Adaboost算法的前世今生
adaboosting算法原理

adaboosting算法原理Adaboosting(亦称AdaBoost)是一种集成学习(ensemble learning)方法,用于提高弱分类器的准确性,并将它们组合为强分类器。
它是由Yoav Freund和Robert Schapire于1996年提出的。
Adaboost的基本思想是通过对先前分类错误的训练样本进行加权,并重新训练分类器,使其能够更好地区分这些错误的样本。
在下一轮的训练中,对先前分类正确的样本权重进行降低,以便更多地关注分类错误的样本。
这样的迭代过程将使得一些样本在最终的分类器中具有更高的权重,从而提高整体分类性能。
以下是Adaboosting算法的基本步骤:1.初始化训练样本权重:对于具有N个训练样本的训练集,初始权重都设置为相等值(通常为1/N)。
2.对于t从1到T(迭代次数):a.使用加权训练集训练一个弱分类器。
弱分类器在训练样本上的错误分类程度将决定它的权重。
b.计算弱分类器的错误率εt。
c.根据εt计算弱分类器的权重αt,其中:αt = 0.5 * ln((1-εt)/εt)d.更新训练样本的权重,使错误分类的样本权重增加,并且正确分类的样本权重减少。
更新公式为:对于正确分类的样本:wt+1(i) = wt(i) * exp(-αt * yi * hi(xi)) / Zt对于错误分类的样本:wt+1(i) = wt(i) * exp(αt * yi * hi(xi)) / Zt其中,wt(i)是第t轮迭代时样本i的权重,yi是样本i的类别(+1或-1),hi(xi)是弱分类器在样本xi上的预测输出,Zt是用于归一化权重的因子。
3. 根据所有弱分类器的权重αt和各自的预测输出hi(xi),通过加权求和的方式得到最终的强分类器:f(x) = sign(Σt=1到T (αt * hi(x)))其中,sign(是一个符号函数,将结果转换为二元分类输出(+1或-1)。
Adaboosting的主要优点在于它能够使用一系列相对简单的弱分类器构建一个准确性更高的强分类器。
adaboost算法参数

adaboost算法参数摘要:1.简介2.AdaBoost 算法原理3.AdaBoost 算法关键参数4.参数调整策略与技巧5.总结正文:1.简介AdaBoost(Adaptive Boosting)算法是一种自适应提升算法,由Yoav Freund 和Robert Schapire 于1995 年提出。
它通过组合多个弱学习器(决策树、SVM 等)来构建一个更强大的学习器,从而提高分类和回归任务的性能。
2.AdaBoost 算法原理AdaBoost 算法基于加权训练样本的概念,每次迭代过程中,算法会根据当前学习器的性能调整样本的权重。
在弱学习器训练过程中,权重大的样本被优先考虑,以达到优化学习器的目的。
3.AdaBoost 算法关键参数AdaBoost 算法有以下几个关键参数:- n_estimators:弱学习器的数量,影响模型的复杂度和性能。
- learning_rate:加权系数,控制每次迭代时样本权重更新的幅度。
- max_depth:决策树的深度,限制模型复杂度,防止过拟合。
- min_samples_split:决策树分裂所需的最小样本数,防止过拟合。
- min_samples_leaf:决策树叶节点所需的最小样本数,防止过拟合。
4.参数调整策略与技巧- 对于分类问题,可以先从较小的n_estimators 值开始,逐步增加以找到最佳组合。
- learning_rate 的选择需要平衡模型的拟合能力和泛化性能,可以采用网格搜索法寻找最佳值。
- 可以通过交叉验证来评估模型性能,从而确定合适的参数组合。
5.总结AdaBoost 算法是一种具有很高实用价值的集成学习方法,通过调整关键参数,可以有效地提高分类和回归任务的性能。
Adaboost

AdaBoost算法学习笔记分享From: /lytwell/article/details/6029623第一部分:算法的产生1996年Yoav Freund在Experiments with a New Boosting Algorithm中提出了AdaBoost.M1和AdaBoost.M2两种算法.其中,AdaBoost.M1是我们通常所说的Discrete AdaBoost;而AdaBoost.M2是M1的泛化形式.该文的一个结论是:当弱分类器算法使用简单的分类方法时,boosting的效果明显地统一地比bagging 要好.当弱分类器算法使用C4.5时,boosting比bagging较好,但是没有前者的比较来得明显.文献中记录的.M1算法初始1.获得一组样本(X)和它的分类(Y)和一个分类器(weaklearn).2.赋予平均的权值分布D(i)进入循环:T次1. 赋予弱分类器权值D(i),使用弱分类器获得样本(X)到分类(Y)上的一个映射.(就是把某个X归到某个Y类中去)2. 计算这个映射的误差e.e=各个归类错误的样本权值之和.如果e>1/2那么弱分类器训练失败,挑出循环,训练结束(这在二值检测中是不会发生的,而多值的情况就要看分类器够不够强健了)3. 设B = e / ( 1 - e ).用于调整权值.因为e<1/2.因此0<B<14. 如果某样本分类正确,该样本的权值就乘以B让权值变小;如果分类错误,就让该样本的权值乘以B^-1或者不变,这样就让分类正确的样本权值降低,分类错误的样本权值升高,加强了对较难分类样本的分类能力5. 权值均衡化循环结束1. 最终的分类器是,当一个X进入时,遍历所有Y,寻找使(h(x)=y的情况下,log(1/B)之和)最大者即是输出分类yM2相比于M1的改进是允许弱分类器输出多个分类结果,并输出这几个分类结果的可能性(注意,这里不是概率).M2的流程是1.获得一组样本(X)和它的分类(Y)和一个分类器(weaklearn).2.对于某个样本Xi将它的分类归为一个正确分类Yi和其他不正确分类Yb3.样本权值进行如下分布首先每个样本分到1/m的权值,然后每个不正确分类分到(1/m)/Yb的个数.也就是说样本权值是分到了每个不正确的分类上进入循环1. 求每个样本的权值,即每个样本所有不正确的分类的权值和,再求每个样本错误分类的权值,即不正确分类的权值除以该样本的权值.最后将每个样本的权值归一化2. 将样本权值和某样本的不正确分类的权值输入到weaklearn,获得弱分类器的输出为各个分类的可能值3. 计算伪错误率:公式见上4. 更新权值退出循环最终的强分类器: 图贴不出来了...1999年, ROBERT E. SCHAPIRE和YORAM SINGER,于Machine Learning发表论文: Improved Boosting Algorithms Using Confidence-rated Predictions.提出了更具一般性的AdaBoost形式.提出了自信率以改善AdaBoost的性能.并提出了解决多标签问题的AdaBoost.MH和AdaBoost.MR算法,其中AdaBoost.MH 算法的一种形式又被称为Real Boost算法.事实上:Discrete AdaBoost是指,弱分类器的输出值限定在{-1,+1},和与之相应的权值调整,强分类器生成的AdaBoost算法;Real AdaBoost是指,弱分类器输出一个可能度,该值的范围是整个R, 和与之相应的权值调整,强分类器生成的AdaBoost算法。
adaboost案例

adaboost案例摘要:1.简介2.AdaBoost 算法原理3.AdaBoost 算法应用案例4.总结正文:1.简介AdaBoost(Adaptive Boosting)是一种自适应增强算法,由Yoav Freund 和Robert Schapire 于1995 年提出。
它是一种基于Boosting 算法的集成学习方法,通过组合多个弱学习器(决策树)来提高预测性能。
AdaBoost 算法具有良好的泛化能力,广泛应用于数据挖掘、机器学习等领域。
2.AdaBoost 算法原理AdaBoost 算法主要包含两个核心部分:加权训练和加权组合。
(1)加权训练:对于每个训练样本,算法根据当前弱学习器的预测结果,赋予样本不同的权重。
错误分类的样本权重增加,正确分类的样本权重减小。
然后,根据新的权重对样本进行加权训练,得到新的弱学习器。
(2)加权组合:多次迭代训练弱学习器,每次迭代过程中,选择加权误差最小的弱学习器作为当前强学习器。
最后,将所有弱学习器按权重组合成最终的强学习器。
3.AdaBoost 算法应用案例假设有一个手写数字识别问题,我们可以使用AdaBoost 算法来提高识别准确率。
(1)收集数据:收集手写数字的数据集,如MNIST 数据集。
(2)特征提取:将数字图片转换为特征向量,如使用HOG(Histogram of Oriented Gradients)特征。
(3)训练弱学习器:使用决策树作为弱学习器,对训练数据进行加权训练。
(4)组合强学习器:将多个弱学习器按权重组合成强学习器。
(5)测试与评估:使用测试数据集评估强学习器的性能。
4.总结AdaBoost 算法是一种有效的集成学习方法,通过组合多个弱学习器来提高预测性能。
其核心思想是加权训练和加权组合,具有良好的泛化能力。
adaboost算法原理,以伪代码描述其算法过程

adaboost算法原理,以伪代码描述其算法过程Adaboost算法原理Adaboost算法是一种常用的分类算法,它的主要思想是通过迭代训练一系列弱分类器,将它们组合成一个强分类器。
Adaboost算法最早由Freund和Schapire在1996年提出,目前已被广泛应用于机器学习和数据挖掘领域。
1. 弱分类器首先需要明确什么是弱分类器。
弱分类器是指准确率略高于随机猜测的分类器,例如一个决策树深度只有1或2层、一个简单的线性模型等。
2. Adaboost算法流程Adaboost算法流程如下:(1)初始化样本权重:对于训练集中的每个样本,初始时赋予相同的权重。
(2)迭代训练:对于每轮迭代,根据当前样本权重训练一个弱分类器,并计算其误差率。
(3)更新样本权重:将误差率小的弱分类器赋予更大的权重,并根据其预测结果更新样本权重。
(4)组合所有弱分类器:将所有弱分类器按照其权重进行加权组合,得到最终的强分类器。
3. Adaboost算法具体实现具体实现过程中,需要定义以下变量:(1)训练集:$D=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\}$,其中$x_i$表示第$i$个样本的特征向量,$y_i\in\{-1,1\}$表示第$i$个样本的类别。
(2)弱分类器:$h_t(x)$表示第$t$个弱分类器。
(3)样本权重:$w_{i,t}$表示第$i$个样本在第$t$轮迭代中的权重。
(4)弱分类器权重:$\alpha_t$表示第$t$个弱分类器的权重。
Adaboost算法伪代码如下:输入:训练集D,迭代次数T输出:最终的强分类器1. 初始化样本权重for i=1 to N dow_{i,0}=1/N2. 迭代训练for t=1 to T do(a) 训练一个弱分类器h_t(x)=train(D,w_{:,t})(b) 计算误差率e_t=sum(w_{i,t}I(h_t(x_i)!=y_i))/sum(w_{i,t})(c) 计算弱分类器权重alpha_t=log((1-e_t)/e_t)(d) 更新样本权重for i=1 to N dow_{i,t+1}=w_{i,t}*exp(alpha_ty_ih_t(x_i))/Z_t(e) 归一化因子Z_t=sum(w_{i,t+1})3. 组合所有弱分类器H(x)=sign(sum(alpha_th_t(x)))其中,$I$为指示函数,当$h_t(x_i)\neq y_i$时取值为1,否则为0;$Z_t$为归一化因子,使得权重和为1。
adaBoost算法原理

由上述式子可知,em <= 1/2时,am >= 0,且am随着em的减小而增大, 意味着分类误差率越小的基本分类器在最终分类器中的作用越大。 d. 更新训练数据集的权值分布(目的:得到样本的新的权值分布),用于 下一轮迭代
使得被基本分类器Gm(x)误分类样本的权值增大,而被正确分类样本的权值减小。 就这样,通过这样的方式,AdaBoost方法能“聚焦于”那些较难分的样本上。 其中,Zm是规范化因子,得Dm+1成为一个概率分布:
有了ym,α也就可以找了,然后继续就可以找到更新w的公式了(注意这里得到的 w公式是没有加规范化因子Z的公式,为了计算方便我们加了个Z进去)
Adaboost算法流程
给定一个训练数据集T={(x1,y1), (x2,y2)…(xN,yN)},其中实例 x X ,而 X R Adaboost的目的就是从训练数 实例空间 X R n ,yi属于标记集合{-1,+1} , 据中学习一系列弱分类器或基本分类器,然后将这些弱分类器组合成一个 强分类器。
Adaboost是什么
AdaBoost,是英文"Adaptive Boosting"(自适应增强)的 缩写,由Yoav Freund和 Robert Schapire在1995年提 出。它的自适应在于:前一 个基本分类器分错的样本会 得到加强,加权后的全体样 本再次被用来训练下一个基 本分类器。同时,在每一轮 中加入一个新的弱分类器, 直到达到某个预定的足够小 的错误率或达到预先指定的 最大迭代次数。
n
步骤1. 首先,初始化训练数据的权值分布。每一个训练样本最开始时都
被赋予相同的权重:1/N。
步骤2. 进行多轮迭代,用m = 1,2, ..., M表示迭代的第多少轮
综述-级联AdaBoost

级联AdaBoostRobust Real-time Object Detection作者为Viola和Jones,发表在The 8th IEEE International Conference On Computer Vision,2001。
这篇论文的发表是人脸检测速度提高的一个重要转折点。
这篇论文主要有三个贡献:1、第一次引入了“积分图”的概念。
积分图使得检测器中特征的计算非常的快。
2、基于AdaBoost的学习算法。
它能从一个很大的特征集中选择很小的一部分关键的特征,从而产生一个极其有效的分类器。
3、级联结构的AdaBoost分类器。
在级联的检测器中不断增加更多的强分类器。
这可以很快排除背景区域,从而节约出时间用于对那些更像人脸的区域进行计算。
该级联的分类器可视为一个智能的具有能集中注意力的机构,而不像以前的那些算法那样通过统计来保证去掉的那些区域不包括感兴趣的区域。
级联结构的分类器是由一系列的分类器的串联组成。
对待识别的样本进行判别时,只有被前面一级的分类器判决为正的样本才被送入后面的分类器继续处理,反之则被认为是负样本直接拒绝。
整个分类器的输出是被所有分类器都判决为正的样本。
在级联结构中,前面几级的分类器相对来说结构比较简单,使用的特征数也较少,但检测率很高,同时能够尽可能地滤除那些与目标差异较大的负样本。
后面级次的分类器则使用更多的特征和更复杂的结构,从而可以将那些与目标相似的负样本与目标物体区分开。
在实际的目标检测应用中,待检测的目标物体通常在整体样本中只占很小的比例,大部分的非目标区域在级联分类器的前端就会被滤除,只有少量的样本需要通过所有级的分类器,因而级联结构能够大大地减少运算量。
2D Cascaded AdaBoost for Eye LocalizationThe 18th International Conference on Pattern Recognition论文这篇文章提出了二维结构(2D)的级联AdaBoost。
第8章 adaboost

即
为AdaBoost算法的基本分类器 ,为使第
m轮加权训练数据分类误差率最小的基本分类器
前向分步算法
求 由
将已求得的 得:
代入,对α求导并使导数为0,
与AdaBoost的αm完全一致
前向分步算法
每一轮样本权值的更新,由:
可得: 与AdaBoost的权值更新一致,相差规范化因子,因而等
怎样组合弱分类器
多专家组合 一种并行结构,所有的弱分类器都给出各自的预测结果,通过 “组合器”把这些预测结果转换为最终结果。 eg.投票(voting) 及其变种、混合专家模型
多级组合 一种串行结构,其中下一个分类器只在前一个分类器预测不够准 (不够自信)的实例上进行训练或检测。 eg. 级联算法 (cascading)
• 在概率近似正确(probably approximately correct, PAC)学习 的框架中,一个概念(类),如果存在一个多项式的学习算 法能够学习它,并且正确率很高,称这个概念是强可学习的;
• 一个概念(类),如果存在一个多项式的学习算法能够学习 它,学习的正确率仅比随机猜测略好,则称这个概念是弱可 学习的。
证明:后面, 由ex和
在x=0的泰劳展开得:
进而得证。
AdaBoost的训练误差分析
定理:如果存在γ > 0,对所有的m有γ m ≥ γ ,则
即:训练误差为指数下降。
注意:AdaBoost算法不需要知道下界γ,这正是Freund与Schapire设计 AdaBoost时所考虑的,与一些早期的提升方法不同,AdaBoost具有适 应性,即它能适应弱分类器各自的训练误差率,这也是它的名称(适 应的提升)的由来,Ada是Adaptive的简写
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Adaboost算法的前世今生转载▼标签:itAdaboost算法的前世今生引言众所周知,模式识别的方法可以按照参与识别特征的属性来区分,可以分为两大类:一、使用定量特征(可度量)如物体长度、宽度等,来描述的各种模式,这一类主要是指决策理论,有匹配、统计、神经网络等方法;二、使用定性特征如特征结构、排列顺序等,来描绘的各种模式,这一类主要是指结构判别,主要有串和树的匹配等方法。
模式识别的完整的流程顺序是:传感器——分割组织——特征提取——分类器——后处理。
其中分类器的设计部分,可以使用的理论有很多,目前主要包括:基于统计理论的方法(贝叶斯理论)、线性判别函数、神经网络的方法、随机方法(对于复杂的问题)、非度量方法(定性结构特征)分类器得到的模型不仅要很好拟合输入数据,还要能够正确地预测未知样本的类标号。
因此,训练算法的主要目标就是要建立具有很好的泛化能力模型,即建立能够准确地预测未知样本类标号的模型。
通常我们用“方差”和“偏差”来测量学习算法与给定分类问题的“匹配”和“校准”程度。
“偏差”度量的是匹配的“准确性”和“质量”:一个高的偏差意味着一个坏的匹配,“方差”度量的是匹配的“精确性”和“特定性”:一个高的方差意味着一个弱的匹配。
研究表明,使用重采样技术可以提高分类器的准确率,而boosting算法就是涉及分类器设计中的重采样技术。
其思想内涵在于:从给定的数据集中抽取多个数据子集,使得有可能计算任意统计量的值及其范围。
说道boosting,不得不说Arcing(adaptive reweighting and combining)自适应的权值重置和组合:重新使用和选择数据,以期达到改善分类器性能的目的。
最简单的arcing版本就是bagging算法。
Bagging一个多分类器系统bagging算法的基本思想:给定一个弱学习算法,和一个训练集;单个弱学习算法准确率不高;将该学习算法使用多次,得出预测函数序列,进行投票,最后结果准确率将得到提高。
步骤1:从大小为n的原始数据集D中,分别独立随机的抽取n’个数据(n’<n),形成自助数据集,将这个过程独立重复多次,直到产生很多独立的自助数据集。
步骤2:每一个自助数据集都被独立的用于训练一个“分量分类器”。
步骤3、最终的分类判决由这些“分量分类器”各自的判决结果投票决定。
Bagging算法是第一个多分类器系统,后面还有(组合分类器系统)。
算法:For t = 1, 2, …, T Do从数据集S中取样(放回选样)训练得到模型Ht对未知样本X分类时,每个模型Ht都得出一个分类,得票最高的即为未知样本X的分类,也可通过得票的平均值用于连续值的预测。
Bagging是一个纯粹的降低相关度的方法,如果树的节点具有很高的相关性,bagging就会有好的结果。
早期的AdaBoost在第二步的时候采用重采样方法,即使某些样本权重增加。
这种方法与bagging存在某种关联。
它也是Boost的成功之处中降低相关度方面的重要部分。
AdaBoost在第二步中如果使用加权的tree-growing算法,而不是重采样算法,效果会更好。
可以使用stumps作为弱分类器最初的boosting算法1989年Kearns and Valiant研究了PAC学习模型中弱学习算法和强学习算法两者间的等价问题,即任意给定仅仅比随机猜测稍好(准确率大于0.5)的弱学习算法,是否可以被提升为强学习算法?若两者等价,则我们只需寻找一个比随机猜测稍好的弱学习算法,然后将其提升为强学习算法,从而不必费很大力气去直接寻找强学习算法。
就此问题,Schapire于1990年首次给出了肯定的答案。
他主持这样一个观点:任一弱学习算法可以通过加强提升到一个任意正确率的强学习算法,并通过构造一种多项式级的算法来实现这一加强过程,这就是最初的Boosting算法的原型。
主要思想是,根据已有的训练样本集设计一个分类器,要求其准确率要比平均性能好,然后依次顺序加入多个分量分类器系统,最后形成一个总体分类器。
以一个二类问题举例。
步骤1:从大小为n的原始样本集D中随机选取n1 个样本点(不放回),组成样本集D1。
根据D1训练出第一个分类器C1。
步骤2:构造第二个样本集D2,它是根据C1最富信息的那些样本点组成的。
在最后产生的D2集合中将有一半的样本被C1正确分类,而另一半的样本被C1错误分类。
步骤3:继续构造第三个样本集D3,方法:在D中剩余的样本中选取样本点,并且用C1和C2进行分类,如果C1和C2判决结果不同,那么就把样本加入D3,否则就忽略这个样本。
然后用D3训练新分类器C3。
步骤4:用这3个分类器对新样本x进行分类,如果C1和C2的判决结果相同,则表为一类,不同则表为另一类。
Boosting方法有许多不同的变形,其中最流行的一种就是adaboost。
这个名词是“adaptive boosting”的缩写。
这个方法允许设计者不断的加入新的“弱分类器”,直到达到某个预定的最小错误率。
1995年Freund and Schapire提出AdaBoost算法。
1996年Yoav Freund在Experiments with a New Boosting Algorithm中提出了AdaBoost.M1和AdaBoost.M2两种算法。
其中,AdaBoost.M1是我们通常所说的Discrete AdaBoost:而AdaBoost.M2是M1的泛化形式。
该文的一个结论是:当弱分类器算法使用简单的分类方法时,boosting的效果明显地统一地比bagging要好。
当弱分类器算法使用C4.5时,boosting 比bagging较好,但是没有前者的比较来得明显。
AdaBoost.M1 Discrete AdaBoost:初始版本1.获得一组样本(X)和它的分类(Y)和一个分类器(weaklearn).2.赋予平均的权值分布D(i)进入循环:T次1. 赋予弱分类器权值D(i),使用弱分类器获得样本(X)到分类(Y)上的一个映射.(就是把某个X 归到某个Y类中去)2. 计算这个映射的误差e,e=各个归类错误的样本权值之和.如果e>1/2那么弱分类器训练失败,跳出循环,训练结束(这在二值检测中是不会发生的,而多值的情况就要看分类器够不够强健了)3. 设beta B = e / ( 1 - e ).用于调整权值.因为e<1/2.因此0<B<14. 如果某样本分类正确,该样本的权值就乘以B让权值变小;如果分类错误,就让该样本的权值乘以B^-1或者不变,这样就让分类正确的样本权值降低,分类错误的样本权值升高,加强了对较难分类样本的分类能力5. 权值均衡化循环结束1. 最终的分类器是,当一个X进入时,遍历所有Y,寻找使(h(x)=y的情况下,log(1/B)之和)最大者即是输出分类y书上版本具体算法:每个样本都赋予一个权重,T次迭代,每次迭代后,对分类错误的样本加大权重,使得下一次的迭代更加关注这些样本。
输入:(X1,Y1), (X2,Y2),…(Xn,Yn)Xi∈X, Yi∈Y={+1,-1}初始化权值:D1(i)=1/nFor t=1,…,T在Dt下训练,得到弱的假设ht: X->{-1,+1},错误率:Εt=ΣDt(i) [ht(Xi)≠Yi]选择αt=1/2 ln ( (1- Εt)/ Εt ),更改权值:if ht(Xi)≠Yi , Dt+1(i)=Dt(i)* e αt /Ztif ht(Xi)=Yi , Dt+1(i)=Dt(i)* e -αt /Zt输出:H(X)=sign( ∑αtht(X) )带图版本(程序版本):初始赋予每个样本相等的权重1/N ;For t = 1, 2, …, T Do学习得到分类法Ct;计算该分类法的错误率EtEt=所有被错误分类的样本的权重和;βt= Et/(1 - Et)根据错误率更新样本的权重;正确分类的样本:Wnew= Wold* βt错误分类的样本:Wnew= Wold调整使得权重和为1;每个分类法Ct的投票价值为log [ 1 / βt ]最大错误率问题:将γt=1/2-Et ;Freund and Schapire 证明:最大错误率为:即训练错误率随γt的增大呈指数级的减小.最大总误差:m : 样本个数d : VC维T : 训练轮数Pr: 对训练集的经验概率如果T值太大,Boosting会导致过适应(overfit)《模式分类》386页AdaBoost.M2是M1的泛化形式.M2的流程是1.获得一组样本(X)和它的分类(Y)和一个分类器(weaklearn).2.对于某个样本Xi将它的分类归为一个正确分类Yi和其他不正确分类Yb3.样本权值进行如下分布首先每个样本分到1/m的权值,然后每个不正确分类分到(1/m)/Yb 的个数。
也就是说样本权值是分到了每个不正确的分类上进入循环1. 求每个样本的权值,即每个样本所有不正确的分类的权值和,再求每个样本错误分类的权值,即不正确分类的权值除以该样本的权值.最后将每个样本的权值归一化2. 将样本权值和某样本的不正确分类的权值输入到weaklearn,获得弱分类器的输出为各个分类的可能值3. 计算伪错误率:4. 更新权值退出循环1999年,ROBERT E. SCHAPIRE和YORAM SINGER,于Machine Learning发表论文:Improved Boosting Algorithms Using Confidence-rated Predictions。
提出了更具一般性的AdaBoost形式。
提出了自信率以改善AdaBoost的性能。
并提出了解决多标签问题的AdaBoost.MH和AdaBoost.MR算法,其中AdaBoost.MH算法的一种形式又被称为Real Boost 算法。
事实上:Discrete AdaBoost是指,弱分类器的输出值限定在{-1,+1},和与之相应的权值调整,强分类器生成的AdaBoost算法;Real AdaBoost是指,弱分类器输出一个可能度,该值的范围是整个R,和与之相应的权值调整,强分类器生成的AdaBoost算法。
事实上,Discrete到Real的转变体现了古典集合到模糊集合转变的思想。
至于Gentle AdaBoost。
考虑到(AdaBoost对”不像”的正样本权值调整很高,而导致了分类器的效率下降),而产生的变种算法。
它较少地强调难以分类的样本。
Rainer Lienhart,Alexander Kuranov,Vadim Pisarevsky在论文Empirical Analysis of Detection Cascades of Boosted Classifiers for Rapid Object Detection中提出在stump弱分类器(即每个弱分类器使用一个特征进行分类)上进行的对比试验中,Gentle的结果明显好于Real和Discrete。