集成学习—Boosting,Bagging,Stacking概述

  现实生活中,人们遇到不会的问题常常会向多个人寻求答案,再三斟酌后确定最终答案。为什么要这样大费周章而不只问一个人呢?因为大家都不是权威专家,为了保险起见,通过结合多个人的答案来提高答案的正确性。

  与该思想类似,集成学习(ensemble learning)的思路:通过训练集 D D 训练出多个不同的学习器,在预测某一新样本时,每个学习器都会给出一个预测结果,综合考虑所有结果,确定最终结果。

  那么,问题就来了!问题一:训练集只有一个,如何训练出不同的学习器?问题二:如何综合每个学习器的预测结果,进而获取靠谱的最终结果?

  针对问题一,主要有以下三种方法:
  1、采用不同类型的算法(如,分类问题可同时采用决策树、逻辑回归等不同类型算法);
  2、采用同类型的算法,但对训练集进行采样,形成不同的训练子集;
  3、采用同类型的算法,但改变训练集的样本分布。

  针对问题二,主要有以下三种方法:
  1、采用所有学习器的预测结果的平均结果;
  2、采用所有学习器的预测结果的投票结果;
  3、采用所有学习器的预测结果的映射结果。

根据采用的方法,集成学习可以细分为三种类型:Boosting,Bagging,Stacking。

Boosting

①利用训练集 D 训练出一个学习器;
根据该学习器的表现改变训练集的样本分布,使预测不好的训练样本在以后得到重视;
③利用改变后的训练集训练出另一个学习器;
④重复②③步骤,直到满足预先设定的停止条件;
⑤预测新样本时,通常将所有学习器的预测结果加权结合(包括加权平均、加权投票等)。

Bagging

①对训练集 D D 进行 m 自助采样,生成 m m 个训练子集;

自助采样(bootstrap sampling):现有训练集 D ,包含 n n 个样本。从 D 中有放回地抽取 n n 个样本,形成训练子集 D D D 中部分样本在 D 中重复出现,部分样本在 D D ′ 中从未出现)。 m m 次自助采样就能形成 m 个训练子集。

②每个训练子集训练出一个学习器,共训练出 m m 个学习器;
③预测新样本时,通常将所有学习器的预测结果简单结合(包括简单平均、简单投票等)。

Stacking

  该方法较前两种方法理解起来要复杂些。
  首先,我相信大部分人在看到前述问题二的第3种解决办法“采用所有学习器的预测结果的映射结果”时,都有些丈二和尚摸不着头脑。那我为大家解释一下,眼睛看过来!!!
  对某一样本(带标记)来说,学习器 h 1 对它的预测看作特征 X1 X 1 ,学习器 h2 h 2 对它的预测看作特征 X2 X 2 ,…,学习器 hm h m 对它的预测看作特征 Xm X m ,它的真实标记看作标记 Y Y 。收集若干个样本对应的( X 1 X2 X 2 ,…, Xm X m Y Y ),形成数据集 d

序号 X1 X 1
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值