集成学习

集成学习(Ensemble Learning) - 知乎 (zhihu.com)https://zhuanlan.zhihu.com/p/27689464集成学习就是组合这里的多个弱监督模型以期得到一个更好更全面的强监督模型,集成学习潜在的思想是即便某一个弱分类器得到了错误的预测,其他的弱分类器也可以将错误纠正回来。

集成学习在各个规模的数据集上都有很好的策略。

  • 数据集大:划分成多个小数据集,学习多个模型进行组合
  • 数据集小:利用Bootstrap方法进行抽样,得到多个数据集,分别训练多个模型再进行组合

Bagging

Bagging是bootstrap aggregating的简写。先说一下bootstrap,bootstrap也称为自助法,它是一种有放回的抽样方法,目的为了得到统计量的分布以及置信区间。具体步骤如下

  • 采用重抽样方法(有放回抽样)从原始样本中抽取一定数量的样本
  • 根据抽出的样本计算想要得到的统计量T
  • 重复上述N次(一般大于1000),得到N个统计量T
  • 根据这N个统计量,即可计算出统计量的置信区间

在Bagging方法中,利用bootstrap方法从整体数据集中采取有放回抽样得到N个数据集,在每个数据集上学习出一个模型,最后的预测结果利用N个模型的输出得到,具体地:分类问题采用N个模型预测投票的方式,回归问题采用N个模型预测平均的方式。

例如**随机森林(Random Forest)**就属于Bagging。随机森林简单地来说就是用随机的方式建立一个森林,森林由很多的决策树组成,随机森林的每一棵决策树之间是没有关联的。

在我们学习每一棵决策树的时候就需要用到Bootstrap方法。在随机森林中,有两个随机采样的过程:对输入数据的**行(数据的数量)与列(数据的特征)**都进行采样。对于行采样,采用有放回的方式,若有N个数据,则采样出N个数据(可能有重复),这样在训练的时候每一棵树都不是全部的样本,相对而言不容易出现overfitting;接着进行列采样从M个feature中选择出m个(m<<M)。最近进行决策树的学习。

预测的时候,随机森林中的每一棵树的都对输入进行预测,最后进行投票,哪个类别多,输入样本就属于哪个类别。这就相当于前面说的,每一个分类器(每一棵树)都比较弱,但组合到一起(投票)就比较强了。

Boosting

提升方法 (Boosting) 是一种可以用来减小监督学习中偏差 的机器学习算法。主要也是学习一系列弱分类器,并将其组合为一个强分类器。Boosting中有代表性的是AdaBoost(Adaptive boosting)算法 :刚开始训练时对每一个训练例赋相等的权重 ,然后用该算法对训练集训练t轮,每次训练后,对训练失败的训练例赋以较大的权重,也就是让学习算法在每次学习以后更注意学错的样本,从而得到多个预测函数。具体可以参考《统计学习方法》。

之前提到过的GBDT(Gradient Boost Decision Tree) 也是一种Boosting的方法,与AdaBoost不同,GBDT每一次的计算是为了减少上一次的残差,GBDT在残差减少(负梯度)的方向上建立一个新的模型。可以参考Gradient Boosting - 知乎专栏

Stacking

Stacking方法是指训练一个模型用于组合其他各个模型。首先我们先训练多个不同的模型,然后把之前训练的各个模型的输出为输入来训练一个模型,以得到一个最终的输出。理论上,Stacking可以表示上面提到的两种Ensemble方法,只要我们采用合适的模型组合策略即可。但在实际中,我们通常使用logistic回归作为组合策略。

如下图,先在整个训练数据集上通过bootstrap抽样得到各个训练集合,得到一系列分类模型,称之为Tier 1分类器(可以采用交叉验证的方式学习),然后将输出用于训练Tier 2 分类器。

Bagging与Boosting

Bagging和Boosting采用的都是采样-学习-组合的方式,但在细节上有一些不同,如

  • Bagging中每个训练集互不相关,也就是每个基分类器互不相关,而Boosting中训练集要在上一轮的结果上进行调整,也使得其不能并行计算
  • Bagging中预测函数是均匀平等的,但在Boosting中预测函数是加权的
相关推荐
Mintopia10 分钟前
OpenClaw 对软件行业产生的影响
人工智能
陈广亮44 分钟前
构建具有长期记忆的 AI Agent:从设计模式到生产实践
人工智能
会写代码的柯基犬1 小时前
DeepSeek vs Kimi vs Qwen —— AI 生成俄罗斯方块代码效果横评
人工智能·llm
Mintopia1 小时前
OpenClaw 是什么?为什么节后热度如此之高?
人工智能
爱可生开源社区2 小时前
DBA 的未来?八位行业先锋的年度圆桌讨论
人工智能·dba
叁两4 小时前
用opencode打造全自动公众号写作流水线,AI 代笔太香了!
前端·人工智能·agent
前端付豪4 小时前
LangChain记忆:通过Memory记住上次的对话细节
人工智能·python·langchain
strayCat232554 小时前
Clawdbot 源码解读 7: 扩展机制
人工智能·开源
王鑫星5 小时前
SWE-bench 首次突破 80%:Claude Opus 4.5 发布,Anthropic 的野心不止于写代码
人工智能