从偏差和方差的角度解释bagging和boosting的原理

首先解释下什么是集成学习

集成学习通过构建并结合多个学习器来完成学习任务,有时也被称为多分类器系统、基于委员会的学习。只包含同种类型的个体学习器,这样的集成是“同质”的;包含不同类型的个体学习器,这样的集成是“异质”的。集成学习通过将多个学习器进行结合,常可获得比单一学习器显著优越的泛化性能。这对“弱学习器”(弱学习器常指泛化性能略优于随机猜测的学习器)尤为明显。要获得好的集成,学习器之间要具有差异性。根据个体学习器的生成方式,目前的集成学习方法大致可分为两大类,即个体学习器间存在强依赖关系、必须串行生成的序列化方法,以及个体学习器间不存在强依赖关系、可同时生成的并行化方法;前者的代表是Boosting,后者的代表是Bagging和“随机森林”。

1.什么是Boosting

Boosting是一族可将弱学习器提升为强学习器的算法。
关于Boosting的工作机制:
1)提高那些在前一轮被弱分类器分错样例的权值,减小前一轮分对样本的权值,使误分的样本在后续受到更多的关注。
2)加法模型将弱分类器进行线性组合,比如AdaBoost通过加权多数表决的方式,即增大错误率小的分类器的权值,同时减小错误率较大的分类器的权值。
如此反复(1)、(2),直到满足训练停止条件。
需要注意的是:Boosting算法在训练的每一轮要检查当前生成的基学习器是否满足基本条件(比如:检查当前分类器是否比随机猜测好)

2.什么是Bagging

Bagging即套袋法,其算法过程如下:
1)从原始样本集中抽取训练集。每轮从原始样本集中使用Bootstraping法(即自助法,是一种有放回的抽样方法,可能抽到重复的样本)抽取n个训练样本(在训练集中,有些样本可能被多次抽取到,而有些样本可能一次都没有被抽中).共进行k轮抽取,得到k个训练集.(k个训练集相互独立)
2)每次使用一个训练集得到一个模型,k个训练集共得到k个模型.(注:根据具体问题采用不同的分类或回归方法,如决策树、神经网络等)
3)对分类问题:将上步得到的k个模型采用投票的方式得到分类结果;对回归问题,计算上述模型的均值作为最后的结果。
Bagging的典型代表是随机森林:
随机森林改变了决策树容易过拟合的问题,这主要是由两个操作所优化的:
1、Boostrap从袋内有放回的抽取样本值
2、每次随机抽取一定数量的特征(通常为sqr(n))
分类问题:采用Bagging投票的方式选择类别频次最高的
回归问题:直接取每颗树结果的平均值

Bagging和Boosting的区别

1)偏差—方差
Boosting:从偏差—方差分解角度看,降低偏差。
Bagging:从偏差—方差分解角度看,降低方差。
2)样本选择:
Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化.而权值是根据上一轮的分类结果进行调整。
Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。
3)样例权重:
Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。
Bagging:使用均匀取样,每个样例的权重相等
4)基学习器权重:
Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重.
Bagging:所有弱分类器的权重相等.
5)串、并行计算:
Boosting:串行,各个及学习器只能顺序生成,因为后一个模型参数需要前一轮模型的结果。
Bagging:各个预测函数可以并行生成。

发布了9 篇原创文章 · 获赞 0 · 访问量 74

猜你喜欢

转载自blog.csdn.net/GFDGFHSDS/article/details/104596291