集成学习(Bagging、Boosting、Stacking)

组合多个学习器:集成方法(ensemble method)元算法(meta-algorithm)

  • 不同算法的集成(集成个体应“好而不同”)
  • 同一算法在不同设置的集成
  • 数据集不同部分分配给不同分类器之后的集成

集成学习中需要有效地生成多样性大的个体学习器,需要多样性增强

  • 数据样本 进行扰动(敏感:决策树、神经网络; 不敏感:线性学习器、支持向量机、朴素贝叶斯、k近邻)
  • 输入属性 进行扰动
  • 输出表示 进行扰动
  • 算法参数 进行扰动

目前的集成学习方法大致可分为两大类:

  • 个体学习器之间存在强依赖关系,必须串行生成的序列化方法
  • 个体学习器不存在强依赖关系,可以同时生成的并行化方法

Bagging

也称自举汇聚法(bootstrap aggregating),是在原始数据集选择T次后得到T个新数据集。通过放回取样得到(比如要得到一个大小为n的新数据集,该数据集中的每个样本都是在原始数据集中随机取样,即抽样之后又放回)得到。基于每个采样集训练出一个基学习器,再将这些基学习器结合,在对预测输出进行结合时,Bagging通常对分类任务使用简单投票法,对回归任务采用简单平均法。Bagging主要关注降低方差

为啥有放回取样?:训练数据不同,我们获得的基学习器可望具有比较大的差异。然而,如果采样出的子集都完全不同,则每个基学习器只用到了一小部分训练数据,甚至不足以进行有效学习,显然无法产生比较好的基学习器。所以,采取相互有交叠的采样子集。

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

随机森林(Random Forest, RF)

2001年由Breiman提出。是Bagging的一个扩展变体。

优点:可用于回归任务和分类任务,并且很容易查看它分配给输入特征的相对重要性。易于使用,超参数数量少。不易过拟合

缺点:大量的树会使算法变慢。

RF在以决策树为基学习器构建Bagging集成的基础上,进一步在决策树的训练过程中引入了随机属性选择。随机森林中基学习器的多样性不仅来自样本扰动,还来自属性扰动,使得最终集成的泛化性能可通过个体学习器之间差异度的增加而进一步提升

传统决策树在选择划分属性时是在当前结点的属性集合中选择一个最优属性;而在RF中,对基决策树的每个结点,是从该结点的属性集合中随机选择一个包含k个属性的子集,然后再从这个子集中选择一个最优属性进行划分。参数k控制了随机性的引入程度,推荐值k=log2d。

超参数:

  • n_estimators:控制随机森林中树的数量
  • max_features:随机森林在单个树中尝试的最大特征数量。
  • min_sample_leaf: 叶子的数量

Boosting

分类器通过串行训练获得,通过集中关注已有分类器错分的那些数据来获得新的分类器。Boosting主要关注降低偏差

AdaBoost(Adaptive Boosting)

1995年由Freund和Schapire提出。

训练算法
- 训练数据中的每个样本,并赋予其一个权重,这些权重构成了向量D。一开始,这些权重都初始化成相等值
- 首先在训练数据上训练出一个弱分类器并计算该分类器的错误率
- 然后在同一数据集上再次训练弱分类器。在分类器的第二次训练当中,将会重新调整每个样本的权重,其中第一次分对的样本的权重会降低,而第一次分错的样本的权重将会提高
- 为了从所有弱分类器中得到最终的分类结果,Adaboost为每个分类器都分配了一个权重值alpha,这些alpha值是基于每个弱分类器的错误率进行计算的。

ε=num(error)num(all)(ε<0.5) ε = n u m ( e r r o r ) n u m ( a l l ) ( ε < 0.5 )

α=12ln(1εε)(α>0) α = 1 2 l n ( 1 − ε ε ) ( α > 0 )

alpha表示弱分类器在最终分类器中的重要性,由上式可知,当误差小于0.5时,alpha大于等于0,并且alpha随着误差的减小而增大,所以分类误差率越小的基本分类器在最终分类器中的作用越大。

如果某个样本被正确分类,那么该样本的权重更改为:

Dt+1i=Dt
  • 3
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答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都是集成学习中常用的方法,它们通过组合多个基学习器来提高模型的性能和泛化能力,从而在实际应用中取得更好的结果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值