集成学习(Bagging,Boosting) 简介

简介: 集成学习算法的主要思想是利用弱分类器组合成为一个强分类器。通过一些既定的模型规则,如设置不同的弱分类器有不同的权重,同时在模型训练的过程中,逐步迭代优化,使组合成的强分类器在一个既定的评价指标下更优。

引言

一个人的力量是渺小的,但是一群人聚集到一起,就有了群体智慧。如在我们的城市的社会分工中,有的人是工程师,政客,有的人是建筑工人,有的人是教师,也有罪犯等等,每个人对这座城市都贡献着价值,整座城市也就井然有序,盎然向上,由于每个人对社会的作用不同,甚至有的为负贡献如罪犯等,如果有一个决策机关如政府的存在,就可以使数以百万人口的城市运作起来,而不是一盘散沙的存在。这种集聚群体智慧的思想,衍生出了一些优秀的算法,如bagging(减小方差),boosting(减小偏差)算法。

集成学习思想

集成学习算法的主要思想是利用弱分类器组合成为一个强分类器。通过一些既定的模型规则,如设置不同的弱分类器有不同的权重,同时在模型训练的过程中,逐步迭代优化,使组合成的强分类器在一个既定的评价指标下更优。

集成算法分类

序列集成方法(boosting)
序列集成方法(boosting),序列方法的原理是通过权重分配机制,比如AdaBoost通过修改数据集不同样本的权重与弱分类器对最终强分类器贡献的权重,做到弱分类器加权多数表决的效果,即增大错误率小的分类器的权重,减小错误率较大的分类器的权重的方法进行加权组合。而梯度提升树GBDT通过拟合残差的方式逐步减小残差,将每一步生成的模型叠加得到新的模型,可以提高整体的预测效果。如下图所示:
boosting.jpg

并行集成方法(bagging)
并行集成方法(bagging),其中参与训练的基础学习器并行生成(例如 Random Forest)。并行方法的原理是利用基础学习器之间的独立性,通过平均或者投票等机制可以显著降低错误率。如下图所示:
bagging.jpg

集成学习算法特点

  • 利用多个分类器,弱分类器可以是同一种集合的算法也可以是不同类型集合的算法,将其聚合起来,以提高准确率。所以在某种意义上,集成学习并不是一个学习算法,而是训练弱分类器的一种上层算法,并将各弱分类器利用既定规则集合起来的一种策略,一种决策思想。
  • 集成学习无论是bagging还是boosting,都既可以做回归任务,也可以应用于分类任务。

    • 针对于分类算法,原理其实很简单,就是每一个树训练出来的结果(叶子),我们选择数量最多的(多数服从少数原理),即可以做到集成的效果。
    • 针对于回归算法,就是每一个树训练出来的结果(叶子),我们把他们的结果加和求平均,就得到一个平均值,那就达到了回归算法的效果。

各种强势集成算法登场

我们最常见的Bagging算法即随机森林RF算法。
我们常见的Boosting算法有AdaBoost,梯度提升树GBDT,Xgboost,以及微软亚洲研究院重磅开源的LightGBM。

相关文章
|
1月前
|
机器学习/深度学习 Python
CatBoost高级教程:深度集成与迁移学习
CatBoost高级教程:深度集成与迁移学习【2月更文挑战第17天】
28 1
|
4天前
|
机器学习/深度学习 缓存 算法
【视频】Boosting集成学习原理与R语言提升回归树BRT预测短鳍鳗分布生态学实例-2
【视频】Boosting集成学习原理与R语言提升回归树BRT预测短鳍鳗分布生态学实例
23 5
|
1月前
|
机器学习/深度学习 算法
大模型开发:描述集成学习以及它如何工作。
集成学习通过结合多个模型预测提升性能,减少偏差和方差。分为Bagging和Boosting:Bagging使用数据子集并行训练模型,如随机森林;Boosting则顺序训练,聚焦前一轮错误,如AdaBoost。Stacking利用模型输出训练新模型。多样性是关键,广泛应用于分类、回归等任务,能有效提高泛化能力和防止过拟合。
18 0
|
9天前
|
机器学习/深度学习
R语言集成模型:提升树boosting、随机森林、约束最小二乘法加权平均模型融合分析时间序列数据
R语言集成模型:提升树boosting、随机森林、约束最小二乘法加权平均模型融合分析时间序列数据
14 0
|
9天前
|
机器学习/深度学习 算法 前端开发
Scikit-learn进阶:探索集成学习算法
【4月更文挑战第17天】本文介绍了Scikit-learn中的集成学习算法,包括Bagging(如RandomForest)、Boosting(AdaBoost、GradientBoosting)和Stacking。通过结合多个学习器,集成学习能提高模型性能,减少偏差和方差。文中展示了如何使用Scikit-learn实现这些算法,并提供示例代码,帮助读者理解和应用集成学习提升模型预测准确性。
|
9天前
|
机器学习/深度学习 算法 Python
使用Python实现集成学习算法:Bagging与Boosting
使用Python实现集成学习算法:Bagging与Boosting
19 0
|
25天前
|
存储 异构计算
System Generator学习——使用 AXI 接口和 IP 集成器(三)
System Generator学习——使用 AXI 接口和 IP 集成器
15 3
|
1月前
|
机器学习/深度学习 前端开发 Python
探索Python中的集成方法:Bagging
探索Python中的集成方法:Bagging
27 6
|
18天前
|
消息中间件 Java Kafka
Springboot集成高低版本kafka
Springboot集成高低版本kafka
|
24天前
|
NoSQL Java Redis
SpringBoot集成Redis解决表单重复提交接口幂等(亲测可用)
SpringBoot集成Redis解决表单重复提交接口幂等(亲测可用)
267 0