boosting与bagging理解

作为集成学习的二个方法,其实bagging和boosting的实现比较容易理解,但是理论证明比较费力。下面首先介绍这两种方法。

所谓的集成学习,就是用多重或多个弱分类器结合为一个强分类器,从而达到提升分类方法效果。严格来说,集成学习并不算是一种分类器,而是一种分类器结合的方法。

1.bagging

bagging算是很基础的集成学习的方法,他的提出是为了增强分类器效果,但是在处理不平衡问题上却有很好的效果。

如上图,原始数据集通过T次随机采样,得到T个与原始数据集相同大小的子数据集,分别训练得到T个弱分类器Classifier,然后结合为一个强分类器。

以下给出随机采样的概率解释及效果分析:

采用的是概率论里面的booststrap思想,由于小样本估计的不准确性,再加上现代计算性能的提升,可以用重复的计算提升小样本的精度。

原始小样本不能正确反映数据的真实分布,用T次随机采样拟合真实分布。

下式为L次分类得到的强分类器等于L次估计的期望:

下式为真实的y与每个弱分类器之间的差异,展开后得到右边:

下式表示,最后得到弱分类器的差异会大于统计平均得到的强分类器的差异,简而言之就是通过强分类,更好地拟合了。

上面得到的结果就是,如果原始数据为真实分布的前提下,用bagging集成分类器,始终是能提升效果的,提升的效果取决于分类器的稳定性,稳定性越差,提升的效果越高。如神经网络这样的不稳定分类器。

当然,上面假设是数据接近真实分布,然后在概率[1/N,1/N,.....1/N]下重采样。

如果训练数据不是真实分布,那么bagging的效果也可能比非bagging更差。

接下来是如何把L个弱分类器集成为强分类器:

最简单的方法就是投票法(vote)。对于一个测试样本,通过L个弱分类器得到L个类别信息,这些信息投票产生最后的类别。如L=10,分类结果分别为:[3,3,3,3,5,5,6,7,1,8.]

那么这个样本就属于3.

2.boosting

类似于bagging集成学习,boosting也是通过重采样得到多个弱分类器,最后得到一个强分类器。区别是boosting是基于权值的弱分类器集成。

上面为boosting的流程图,简要概括如下:

1.e表示某个弱分类器的错误分类率,计算用来作为这个分类器的可信度权值a,以及更新采样权值D。

2.D表示原始数据的权值矩阵,用来随机采样。刚开始每个样本的采样概率都一样,为1/m。在某个弱分类器分类时,分类错误或对,则D就会根据e相应地增加或减少,那么分错的样本由于D增大,在下一次分类采样时被采样的概率增加了,从而提高上次错分样本下次分对的概率。

3.α为弱分类器的可信度,bagging中隐含的α为1,boosting中,根据每个弱分类器的表现(e较低),决定这个分类器的结果在总的结果中所占的权重,分类准的自然占较多的权重。

最后根据可信度α,以及各个弱分类器的估计h(x),得到最后的结果。

如上图为boosting的流程图,主要为两个部分,更新采样权值D和计算分类器权重α,前者使得原来分错的样本再下一个分类器中能够有较大的几率出现,从而提高原来分错样本之后分对的概率;后者根据分类器的表现,赋予不同弱分类器不同权值,最后得到一个加权的强分类器。

boosting概率上的效果证明这里略去,只引出一个结论,不断地迭代更新能使得最终的结果无限接近最优分类,不过boosting会倾向于一直分错的样本,如果样本中有离群的错误样本,boosting就会出现效果不好的情况。

总结上面讨论了两个集成学习的方法,bagging和boosting,boosting有点像bagging的改进版本,加入了权值采样和权重强分类的概念。都是通过重采样和弱分类器融合实现的方法。

时间: 2024-10-11 21:10:10

boosting与bagging理解的相关文章

boosting和bagging

首先来说明一下bootstraps:可以把它认为是一种有放回的抽样方法. bagging:boostraps aggregating(汇总) boosting:Adaboot (Adaptive Boosting)提示方法 提升(boosting):在分类问题中,通过改变训练样本的权重,学习多个分类器,并将这些分类器进行线性组合,提高分类的性能. 思想:提示方法就是从弱学习算法出发,反复学习,得到一系列弱分类器(基分类器),然后组合这些弱分类器,构成一个强分类器 1)改变训练数据的概率分布 2)

ML中Boosting和Bagging的比较

说到ML中Boosting和Bagging,他们属于的是ML中的集成学习,集成学习法(Ensemble Learning) ①  将多个分类方法聚集在一起,以提高分类的准确率. (这些算法可以是不同的算法,也可以是相同的算法.) ②  集成学习法由训练数据构建一组基分类器,然后通过对每个基分类器的预测进行投票来进行分类 ③  严格来说,集成学习并不算是一种分类器,而是一种分类器结合的方法. ④  通常一个集成分类器的分类性能会好于单个分类器 ⑤  如果把单个分类器比作一个决策者的话,集成学习的方

Boosting和Bagging的差别

boosting和bagging的差别: bagging中的模型是强模型,偏差低,方差高.目标是降低方差.在bagging中,每个模型的bias和variance近似相同,但是互相相关性不太高,因此一般不能降低Bias,而一定程度上能降低variance.典型的bagging是random forest. boosting中每个模型是弱模型,偏差高,方差低.目标是通过平均降低偏差.boosting的基本思想就是用贪心法最小化损失函数,显然能降低偏差,但是通常模型的相关性很强,因此不能显著降低va

[笔记]Boosting和Bagging

集成学习(ensemble learning)通过构建并结合多个学习器来完成学习任务.集成学习通过将多个学习器进行结合,常可以获得比单一学习器显著优越的泛化性能.这对"弱学习器"尤为明显,因此集成学习的很多理论研究都是针对弱学习器进行的. 要获得好的集成,个体学习器应该"好而不同",即个体学习器要有一定的"准确性",即学习器不能太坏,并且要有"多样性",即学习器之间有差异. 根据个体学习器的生成方式,目前的集成学习方法大致可以

集成学习算法总结----Boosting和Bagging(转)

1.集成学习概述 1.1 集成学习概述 集成学习在机器学习算法中具有较高的准去率,不足之处就是模型的训练过程可能比较复杂,效率不是很高.目前接触较多的集成学习主要有2种:基于Boosting的和基于Bagging,前者的代表算法有Adaboost.GBDT.XGBOOST.后者的代表算法主要是随机森林. 1.2 集成学习的主要思想 集成学习的主要思想是利用一定的手段学习出多个分类器,而且这多个分类器要求是弱分类器,然后将多个分类器进行组合公共预测.核心思想就是如何训练处多个弱分类器以及如何将这些

集成学习算法总结----Boosting和Bagging

1.集成学习概述 1.1 集成学习概述 集成学习在机器学习算法中具有较高的准去率,不足之处就是模型的训练过程可能比较复杂,效率不是很高.目前接触较多的集成学习主要有2种:基于Boosting的和基于Bagging,前者的代表算法有Adaboost.GBDT.XGBOOST.后者的代表算法主要是随机森林. 1.2 集成学习的主要思想 集成学习的主要思想是利用一定的手段学习出多个分类器,而且这多个分类器要求是弱分类器,然后将多个分类器进行组合公共预测.核心思想就是如何训练处多个弱分类器以及如何将这些

集成学习记录(Boosting和Bagging)

集成学习: 集成学习在机器学习算法中具有较高的准去率,不足之处就是模型的训练过程可能比较复杂,效率不是很高. 目前接触较多的集成学习主要有2种:基于Boosting的和基于Bagging,前者的代表算法有Adaboost.GBDT.XGBOOST.后者的代表算法主要是随机森林. 集成学习主要思想: 集成学习的主要思想是利用一定的手段学习出多个分类器,而且这多个分类器要求是弱分类器,然后将多个分类器进行组合公共预测.核心思想就是如何训练处多个弱分类器以及如何将这些弱分类器进行组合. 弱分类器选择:

[Algorithm] 集成学习方法——Bagging和 Boosting

使用机器学习方法解决问题时,有较多模型可供选择. 一般的思路是先根据数据的特点,快速尝试某种模型,选定某种模型后, 再进行模型参数的选择(当然时间允许的话,可以对模型和参数进行双向选择) 因为不同的模型具有不同的特点, 所以有时也会将多个模型进行组合,以发挥"三个臭皮匠顶一个诸葛亮的作用", 这样的思路, 反应在模型中,主要有两种思路:Bagging和Boosting 1. Bagging Bagging 可以看成是一种圆桌会议, 或是投票选举的形式,其中的思想是:"群众的眼

【机器学习】Bagging与Boosting算法原理小结

集成学习(Ensemble Larning)本身不是一个单独的机器学习算法,是通过构建并结合多个机器学习器来完成学习任务的思想.通常的集成学习的方法指的是同质个体学习器.同质个体学习器使用最多的模型是CART决策树和神经网络.按照个体学习器之间是否存在依赖关系可以分为两类,第一个是个体学习器之间存在强依赖关系,一系列个体学习器基本都需要串行生成,代表算法是Boosting系列算法:第二个是个体学习器之间不存在强依赖关系,一系列个体学习器可以并行生成,代表算法是Bagging和随机森林(Rando