机器学习算法中Bagging和Boosting的区别

本文深入探讨了Bagging和Boosting两种机器学习算法的原理与应用,对比了两者在样本选择、权重分配、分类器权重及并行计算上的区别,并介绍了如何将决策树与这些算法框架结合,形成随机森林、提升树和GBDT等新型算法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

首先这两种方法都是基于单一弱分类器进行提升的一种手段,只不过实现的原理不一样。
在工业界,传统的机器学习算法已经无法满足我们日益增加的算法需求,所以一些组合形式的算法的出现成功引起了大家的注意和学习。

概念

Bagging和Boosting都是将已有的分类或回归算法通过一定方式组合起来形成一个性能更加强大的分类器,更准确的说这是一种分类算法的组装方法。即将弱分类器组装成强分类器的方法

首先介绍Bootstraping,即自助法:它是一种有放回的抽样方法(可能抽到重复的样本)。

1、Bagging (bootstrap aggregating)

Bagging套袋法,其算法过程如下:

a)从原始样本集中抽取训练集。每轮从原始样本集中使用Bootstraping的方法抽取n个训练样本(在训练集中,有些样本可能被多次抽取到,而有些样本可能一次都没有被抽中)。共进行k轮抽取,得到k个训练集。(k个训练集之间是相互独立的)

b)每次使用一个训练集得到一个模型,k个训练集共得到k个模型。(注:这里并没有具体的分类算法或回归方法,我们可以根据具体问题采用不同的分类或回归方法,如决策树、感知机等)

c)对分类问题:将上步得到的k个模型采用投票的方式得到分类结果;对回归问题,计算上述模型的均值作为最后的结果。(所有模型的重要性相同)

2、Boosting

其主要思想是将弱分类器组装成一个强分类器。在PAC(概率近似正确)学习框架下,则一定可以将弱分类器组装成一个强分类器。

关于Boosting的两个核心问题:

a)在每一轮如何改变训练数据的权值或概率分布?

通过提高那些在前一轮被弱分类器分错样例的权值减小前一轮分对样例的权值,来使得分类器重点关注那些被误分的数据,直至所有的样本都被正确分类。

b)通过什么方式来组合弱分类器?

通过加法模型将弱分类器进行线性组合,比如AdaBoost通过加权多数表决的方式,即增大错误率小的分类器的权值,同时减小错误率较大的分类器的权值。

而提升树通过拟合残差的方式逐步减小残差将每一步生成的模型叠加得到最终模型

3、Bagging,Boosting二者之间的区别

BaggingBoosting的区别:

a)样本选择上:

Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。

Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。

b)样本权重:

Bagging:使用均匀取样,每个样本的权重相等。

Boosting:根据错误率不断调整样本的权值,错误率越大则权重越大。

c)分类器(模型)权重:

Bagging:所有分类器的权重相等。

Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。

d)并行计算:

Bagging:各个分类器可以并行生成。

Boosting:各个分类器只能顺序生成,因为后一个分类器的参数需要前一轮分类器的结果。

总结

这两种方法都是把若干个分类器整合为一个分类器的方法,只是整合的方式不一样,最终得到不一样的效果,将不同的分类算法套入到此类算法框架中一定程度上会提高了原单一分类器的分类效果但是也增大了计算量

下面是将决策树与这些算法框架进行结合所得到的新的算法:

a)Bagging + 决策树 = 随机森林

b)AdaBoost + 决策树 = 提升树

c)Gradient Boosting + 决策树 = GBDT(梯度提升树)

参考文献

Bagging和Boosting 概念及区别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值