分类算法-adaboost

分类算法-adaboost

2023年8月2日发(作者:)

分类算法-adaboost⼀、定义Adaboost是⼀种迭代算法,其核⼼思想是针对同⼀个训练集训练不同的分类器(弱分类器),然后把这些弱分类器集合起来,构成⼀个更强的最终分类器(强分类器)。Adaboost算法已被证明是⼀种有效⽽实⽤的Boosting算法。该算法是Freund和Schapire于1995年对Boosting算法的改进得到的,其算法原理是通过调整样本权重和弱分类器权值,从训练出的弱分类器中筛选出权值系数最⼩的弱分类器组合成⼀个最终强分类器。基于训练集训练弱分类器,每次下⼀个弱分类器都是在样本的不同权值集上训练获得的。每个样本被分类的难易度决定权重,⽽分类的难易度是经过前⾯步骤中的分类器的输出估计得到的。Adaboost算法在样本训练集使⽤过程中,对其中的关键分类特征集进⾏多次挑选,逐步训练分量弱分类器,⽤适当的阈值选择最佳弱分类器,最后将每次迭代训练选出的最佳弱分类器构建为强分类器。其中,级联分类器的设计模式为在尽量保证感兴趣图像输出率的同时,减少⾮感兴趣图像的输出率,随着迭代次数不断增加,所有的⾮感兴趣图像样本都不能通过,⽽感兴趣样本始终保持尽可能通过为⽌。⼆、原理1. 先通过对N个训练样本的学习得到第⼀个弱分类器2. 将分错的样本和其他的新数据⼀起构成⼀个新的N个的训练样本,通过对这个样本的学习得到第⼆个弱分类器3. 将1和2都分错了的样本加上其他的新样本构成另⼀个新的N个的训练样本,通过对这个样本的学习得到第三个弱分类器4. 最终经过提升的强分类器。即某个数据被分为哪⼀类要由各分类器权值决定由Adaboost算法的描述过程可知,该算法在实现过程中根据训练集的⼤⼩初始化样本权值,使其满⾜均匀分布,在后续操作中通过公式来改变和规范化算法迭代后样本的权值。样本被错误分类导致权值增⼤,反之权值相应减⼩,这表⽰被错分的训练样本集包括⼀个更⾼的权重。这就会使在下轮时训练样本集更注重于难以识别的样本,针对被错分样本的进⼀步学习来得到下⼀个弱分类器,直到样本被正确分类。在达到规定的迭代次数或者预期的误差率时,则强分类器构建完成。三、优缺点1、 优点(1)很好的利⽤了弱分类器进⾏级联(2)可以将不同的分类算法作为弱分类器(3)AdaBoost具有很⾼的精度(4)相对于bagging算法和Random Forest算法,AdaBoost充分考虑的每个分类器的权重2、缺点(1)AdaBoost迭代次数也就是弱分类器数⽬不太好设定,可以使⽤交叉验证来进⾏确定(2)数据不平衡导致分类精度下降(3)训练⽐较耗时,每次重新选择当前分类器最好切分点四、 Bagging和Boosting 概念及区别看到这个算法你是不是似曾相识?对,他们都是由多个弱算法组合成⼀个强算法的原理。印证了“三个臭⽪匠赛过诸葛亮”。但是其实他们棣属于不同的算法框架:1)Bagging + 决策树 = 随机森林2)AdaBoost + 决策树 = 提升树那么bagging和boosting分别是什么呢?Bagging和Boosting都是将已有的分类或回归算法通过⼀定⽅式组合起来,形成⼀个性能更加强⼤的分类器,更准确的说这是⼀种分类算法的组装⽅法。即将弱分类器组装成强分类器的⽅法。1、Bagging (bootstrap aggregating) - ⾃助法:⼀种有放回的抽样⽅法A)从原始样本集中抽取训练集。每轮从原始样本集中使⽤Bootstraping的⽅法抽取n个训练样本(在训练集中,有些样本可能被多次抽取到,⽽有些样本可能⼀次都没有被抽中)。共进⾏k轮抽取,得到k个训练集。(k个训练集之间是相互独⽴的)B)每次使⽤⼀个训练集得到⼀个模型,k个训练集共得到k个模型。(注:这⾥并没有具体的分类算法或回归⽅法,我们可以根据具体问题采⽤不同的分类或回归⽅法,如决策树、感知器等)C)对分类问题:将上步得到的k个模型采⽤投票的⽅式得到分类结果;对回归问题,计算上述模型的均值作为最后的结果。(所有模型的重要性相同)2、Boosting其主要思想是将弱分类器组装成⼀个强分类器。在PAC(概率近似正确)学习框架下,则⼀定可以将弱分类器组装成⼀个强分类器。关于Boosting的两个核⼼问题:1)在每⼀轮如何改变训练数据的权值或概率分布?通过提⾼那些在前⼀轮被弱分类器分错样例的权值,减⼩前⼀轮分对样例的权值,来使得分类器对误分的数据有较好的效果。2)通过什么⽅式来组合弱分类器?通过加法模型将弱分类器进⾏线性组合,⽐如AdaBoost通过加权多数表决的⽅式,即增⼤错误率⼩的分类器的权值,同时减⼩错误率较⼤的分类器的权值。⽽提升树通过拟合残差的⽅式逐步减⼩残差,将每⼀步⽣成的模型叠加得到最终模型。3、Bagging和Boosting⼆者之间的区别1)样本选择上Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独⽴的。Boosting:每⼀轮的训练集不变,只是训练集中每个样例在分类器中的权重发⽣变化。⽽权值是根据上⼀轮的分类结果进⾏调整。2)样例权重Bagging:使⽤均匀取样,每个样例的权重相等Boosting:根据错误率不断调整样例的权值,错误率越⼤则权重越⼤。3)预测函数Bagging:所有预测函数的权重相等。Boosting:每个弱分类器都有相应的权重,对于分类误差⼩的分类器会有更⼤的权重。4)并⾏计算Bagging:各个预测函数可以并⾏⽣成Boosting:各个预测函数只能顺序⽣成,因为后⼀个模型参数需要前⼀轮模型的结果。4、总结这两种⽅法都是把若⼲个分类器整合为⼀个分类器的⽅法,只是整合的⽅式不⼀样,最终得到不⼀样的效果,将不同的分类算法套⼊到此类算法框架中⼀定程度上会提⾼了原单⼀分类器的分类效果,但是也增⼤了计算量。

发布者:admin,转转请注明出处:http://www.yc00.com/xiaochengxu/1690906589a460204.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信