bagging、boosting、Stacking(自助法、提升法、堆叠法)

创建日期:2021.01.20
修改日期:2021.01.20

1. 集成学习

集成学习是一种机器学习范式。在集成学习训练多个模型(通常称为弱学习器)解决相同的问题,并将它们结合起来以获得更好的结果。

最重要的假设是:当弱模型被正确组合时,我们可以得到更精确和/或更鲁棒的模型。

2. 基模型

弱学习器就是基模型。作者认为基模型更准确,因为基模型未必是效果不好的或者弱的,是在特定的业务环境下评价不是很好。

在大多数情况下,基本模型本身的性能并不是非常好,或是因为它们具有较高的偏置(例如,低自由度模型),或是因为他们的方差太大导致鲁棒性不强(例如,高自由度模型)。

很重要的一点是:我们对弱学习器的选择应该和我们聚合这些模型的方式相一致。如果我们选择具有低偏置高方差的基础模型,我们应该使用一种倾向于减小方差的聚合方法;而如果我们选择具有低方差高偏置的基础模型,我们应该使用一种倾向于减小偏置的聚合方法。

3. 基模型同质性

集成学习中的基模型可以是同质的,也可以是不同质的。

  • 使用单一的基础学习算法,有以不同方式训练的同质弱学习器。
  • 使用不同的基础学习算法,些异质的弱学习器组合成异质集成模型。
4. 集成方法比较

降方差(bagging),减偏差(boosting),提升预测准确性(stacking)

  • bagging(Bootstrap aggregating自举汇聚法,自助法)

    • 该方法通常考虑的是同质弱学习器,相互独立地并行学习这些弱学习器,并按照某种确定性的平均过程将它们组合起来。
    • Bagging代表算法-RF(随机森林)。
    • 属于并行方法。
  • boosting(提升法)

    • 该方法通常考虑的也是同质弱学习器。它以一种高度自适应的方法顺序地学习这些弱学习器(每个基础模型都依赖于前面的模型),并按照某种确定性的策略将它们组合起来。
    • 提升法又分为自适应提升(adaboost )和梯度提升(gradient boosting)。
    • 属于串行方法。
  • stacking(堆叠法)

    • 该方法通常考虑的是异质弱学习器,并行地学习它们,并通过训练一个「元模型」将它们组合起来,根据不同弱模型的预测结果输出一个最终的预测结果。
    • 分阶段方法。
4. Bagging 自助法

给定一个训练集 D D D,样本个数为 m m m,Bagging算法从中均匀、有放回地选出 n n n个样本,形成子集 D i , i = 1 , 2 , . . . , t D_i, i=1,2, ..., t Di,i=1,2,...,t,作为新的训练集。

D i D_i Di练集上使用分类、回归等算法,则可得到 t个模型,再通过取平均值、取多数票等方法综合产生预测结果,即可得到Bagging的结果。

对于一个样本 D i D_i Di,它在某一次含 m m m个样本的训练集的随机采样中,每次被采集到的概率是 1 m \frac{1}{m} m1。不被采集到的概率为 1 − 1 m 1-\frac{1}{m} 1m1。如果 m m m次采样都没有被采集中的概率是 ( 1 − 1 m ) m (1-\frac{1}{m})^m (1m1)m。当 m → ∞ m→∞ m时, ( 1 − 1 m ) m → 1 e ≃ 0.368 (1-\frac{1}{m})^m→\frac{1}{e}≃0.368 (1m1)me10.368。也就是说,在bagging的每轮随机采样中,训练集中大约有36.8%的数据没有被采样集采集中。

对于这部分大约36.8%的没有被采样到的数据,我们常常称之为袋外数据(Out Of Bag, 简称OOB)。这些数据没有参与训练集模型的拟合,因此可以用来检测模型的泛化能力。

在这里插入图片描述

5. Boosting 提升法

根据它们的上一轮的分类准确率给予不同的权重。加和弱学习者之后,数据通常会被重新加权,来强化对之前分类错误数据点的分类,其中一个经典的提升算法例子是AdaBoost。
在这里插入图片描述

6. Stacking 堆叠法

将训练好的所有基模型对整个训练集进行预测,第j个基模型对第i个训练样本的预测值将作为新的训练集中第i个样本的第j个特征值,最后基于新的训练集进行训练。同理,预测的过程也要先经过所有基模型的预测形成新的测试集,最后再对测试集进行预测。

在这里插入图片描述
在这里插入图片描述

7. 参考资料

(1)常用的模型集成方法介绍:bagging、boosting、stacking
(2)集成学习总结 & Stacking方法详解
(3)机器学习笔记(8)——集成学习之Bootstrap aggregating(Bagging)装袋算法
(4)Stacking算法
(5)机器学习(4):集成算法(Bagging、Boosting、Stacking)
(6)Bootstrap(自助法),Bagging,Boosting(提升)

  • 4
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: bagging:是一种集成学习方,通过对训练数据进行有放回的随机抽样,生成多个子集,然后在每个子集上训练一个学习器,最后将这些学习器的预测结果进行平均或投票来得到最终的预测结果。 boosting:也是一种集成学习方,但与bagging不同的是,它是通过对训练数据进行加权,使得学习器更加关注那些难以分类的样本,从而提高整体的预测准确率。 stacking:是一种更加高级的集成学习方,它不仅仅是将多个学习器的预测结果进行简单的平均或投票,而是将这些预测结果作为新的特征,再训练一个元学习器来得到最终的预测结果。 ### 回答2: BaggingBoostingStacking都是集成学习(Ensemble Learning)中常用的方。 Bagging(自举汇聚)是一种并行集成方于自助采样的思想,通过构建多个相互独立的分类器(如决策树),再进行投票或求平均等方式进行集成。每个子分类器都是在不同的训练数据集上训练得到的,可以减少模型的方差,提高模型的稳定性,有效降低过拟合风险。 Boosting提升)则是一种串行集成方,通过迭代训练一系列弱分类器(如决策树),通过不断调整样本权重以使错误样本更加关注,然后再结合所有弱分类器形成一个强分类器。Boosting可以提高模型的准确性,特别适用于处理复杂的分类问题。 Stacking堆叠泛化)是一种更为复杂的集成方,它结合了BaggingBoosting的优势。在Stacking中,首先构建多层的分类器(如分类器、元分类器等),每层的输出作为下一层的输入。最后通过一个元分类器来整合各层的输出结果,以获得最终的预测结果。 总结起来,Bagging通过并行地构建多个相互独立的分类器进行集成,Boosting通过迭代地训练一系列弱分类器形成一个强分类器,而Stacking通过构建多层的分类器以获得更强大的预测能力。这些集成方在实际应用中,能够有效提高分类模型的准确性和稳定性,达到更好的预测效果。 ### 回答3: BaggingBoostingStacking都是常用于集成学习(ensemble learning)中的方。 Bagging于自助采样(bootstrap sampling)的一种集成学习方。在Bagging中,我们从原始数据集中使用有放回地进行采样得到多个不同的子样本集,并使用这些子样本集独立地训练多个学习器。最后,通过对学习器的预测结果进行投票或求平均来得到最终的集成模型。Bagging能够减少过拟合,提高模型的稳定性和泛化能力。 Boosting也是一种集成学习方,与Bagging不同的是它是于序列训练的。在Boosting中,学习器是按顺序训练的,每个学习器都会根据前一个学习器的预测结果对样本进行调整。Boosting的核心思想是通过迭代训练一系列弱学习器,使得它们能够逐步提升性能并最终形成一个强学习器。常用的Boosting有AdaBoost和Gradient BoostingStacking是一种更高级的集成学习方,它将多个不同类型的学习器集成在一起。在Stacking中,我们首先使用训练数据集对多个学习器进行训练,然后使用这些学习器对测试数据集进行预测。接着,我们将学习器的预测结果作为输入,再训练一个元学习器来得到最终的集成模型Stacking通过将不同类型的学习器进行组合,可以充分利用它们的优势,提高模型的性能和泛化能力。 综上所述,BaggingBoostingStacking都是集成学习中常用的方,它们通过组合多个学习器来提高模型的性能和泛化能力,从而在实际应用中取得更好的结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值