Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >算法大赛神器:集成学习方法关键点介绍

算法大赛神器:集成学习方法关键点介绍

作者头像
deephub
发布于 2020-06-10 01:46:14
发布于 2020-06-10 01:46:14
6470
举报
文章被收录于专栏:DeepHub IMBADeepHub IMBA

本文的目的是介绍集成学习方法的各种概念。将解释一些必要的关键点,以便读者能够很好地理解相关方法的使用,并能够在需要时设计适合的解决方案。

我们知道,各种学习模型误差表现在以下几个方面:数据噪声、偏差(偏差过大的模型往往不具备较好的性能,通常不能反映重要的趋势性特征)、方差(方差过大的模型往往表现为过拟合,不能够较好应用于未知数据集,不具备较好的泛化能力)。

因此,首先让我们简单地解释一下集成学习,以了解它如何针对这些类型的误差:

集成学习是将不同的学习算法组合成一个预测模型的策略。它的核心方法在于“投票”,能够起到“群众智慧”或“团结就是力量”的目的。

其主要思想是基于“集合更多的预测方法能够建立一个更好的模型”。

它可以通过一些简单的技术来实现,比如最大投票(利用所有预测结果,主要用于分类问题)、平均或加权平均,或者更复杂的计算。

集成模型就如同一支管弦乐队

我们既可以通过集合同一类型的学习算法生成同质的集成学习算法,也可以通过不同类型的学习算法生成异质的集成学习算法。

集成模型结合各个学习算法的结果综合判读最佳输出

目前集成模型大致可以分为以下四类:装袋(Bagging)、增压(Boosting)、堆叠(Stacking)、混合(Blending)。

Bagging

Bagging(Bootstrap AGGregatING) 集成方法,通过抽取训练数据的部分子样本形成子样本数据集并构建基模型,基模型在不同的子样本数据集上进行训练。在各个子样本数据集上单独建立基模型(base model),它们独立并行运行。最后的预测将通过综合所有模型的结果来确定。

通过为基模型提供不同的数据子集,能够降低这些模型给出相同结果的概率。

bagging 的典型例子:随机森林方法

随机森林方法遵循 bagging 技术,通过一个小的调整,解除树的相关性,并产生一个非常强大的模型。

Bagging 方法适用于高方差低偏差模型。如果单个模型得到的性能非常低(高偏差),那么 bagging 通常也不能很少地降低偏差。

Boosting

其主要思想是利用已有模型的信息对最终模型进行改进。Boosting 的目的是减少偏差,同时保持较小的方差。它通过非常缓慢的增长来追求方差,通过将许多基模型组合成一个“超级模型”来寻求更低的偏差。

Boosting 虽然可以应用于非树的模型,但最常用于树方法。

在Boosting中,第一个算法是在整个数据集上训练的。然后依次建立后续算法,并对前一算法的残差进行拟合。每个学习模型从先前的学习模型和每个阶段选择最佳的学习模型和权重。当前一模型预测效果不好时,它赋予其更高的权重。

损失函数和(伪)残差的计算方法取决于实际的boosting算法和学习参数 λ 的设置。

常见的 Boosting 集成模型有:

  1. AdaBoost(Adaptive Boosting):根据错误的预测结果确定权重。
  2. Gradient Boosting Machine(GBM):利用梯度下降来更新模型,以降低误差。
  3. Extreme Gradient Boosting Machine(XGBM):基于 Gradient Boosting 进行了一定优化。
  4. LightGBM:类似于 XGBM,但适用于大数据集,与 XGBM 的显著不同在于拆分树的方式。
  5. CatBoost(Category Boosting):使用类别变量和目标之间的统计关系处理类别变量。

Boosting不同于Bagging,Bagging适合并行的多个独立模型,每个树都将基于不同的数据子集创建。这两种方法都将不同模型的多个估计组合在一起,从而减小了单个估计的方差,因此得到的结果可能是一个具有更高稳定性的模型。值得注意的是,如果单个模型的问题在于过拟合,那么 Bagging 是更好的选择。

Stacking

它是一种元学习方法,在这种方法中,集成模型被用来“提取特征”,这些特征将被集成模型的另一层所使用。它也被称为叠加泛化(Stacked Generalization)。Stacking 结合了多个模型,在完整训练集的基础上训练基础层的基模型,然后根据基模型的输出作为特征对元模型进行训练。基础层通常由不同的学习算法组成,因此 Stacking 集成常常是异构的。

首先,将训练数据集划分为 K 份(类似于 K折交叉验证),然后对不同的基模型重复以下步骤:基模型通过 K-1 份数据集进行训练,预测余下数据的结果。在不同基模型的预测基础上,将预测结果作为输入数据传递至第二层的模型,通过第二次的模型预测测试集。

Stacking levels

Blending

类似于 Stacking 方法,但仅使用训练数据集中的指定子集进行预测。与 Stacking 相比,它更简单,信息泄漏的风险更小。

首先,将训练数据集划分为 训练子集和验证子集。然后基模型通过训练子集进行训练,并且对验证子集进行预测。预测结果将作为输入用于第二层模型的预测。

总结

本文主要介绍了集成学习方法,以及主要集成方法:Bagging, Boosting, Stacking, Blending。主要几点内容如下:

  • 集成学习使用多个模型(基模型)来解决同一问题,然后将它们结合起来以获得更好的性能。
  • 在 Bagging 中,对训练数据的不同子样本进行并行独立的相同基模型训练,然后在某种“平均”过程中进行聚合。它适用于高方差低偏差模型。
  • 在 Boosting 中,第一个模型是在整个数据集上训练的。然后依次建立后续模型并拟合前一模型的残差。通过将许多基模型组合成一个“超级模型”来追求更低偏差。
  • 在 Stacking 中,基于完整的训练集对底层模型进行训练,然后以底层模型的输出作为特征对元模型进行训练。
  • 在 Blending 中,它类似于 Stacking,但仅使用训练数据集中的指定子集进行训练和预测。与 Stacking 相比,它更简单,信息泄漏的风险更小。

总之,集成学习方法可以综合不同的模型,以针对具体问题获得更好的预测结果。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-06-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DeepHub IMBA 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
集成学习算法梳理——RF
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/JN_rainbow/article/details/88993591
JNJYan
2019/04/17
1K0
集成学习算法梳理——RF
算法金 | 决策树、随机森林、bagging、boosting、Adaboost、GBDT、XGBoost 算法大全
决策树是一种简单直观的机器学习算法,它广泛应用于分类和回归问题中。它的核心思想是将复杂的决策过程分解成一系列简单的决策,通过不断地将数据集分割成更小的子集来进行预测。本文将带你详细了解决策树系列算法的定义、原理、构建方法、剪枝与优化技术,以及它的优缺点。
算法金
2024/06/25
6410
算法金 | 决策树、随机森林、bagging、boosting、Adaboost、GBDT、XGBoost 算法大全
机器学习:集成学习方法总结
机器学习是人工智能的一个分支领域,致力于构建自动学习和自适应的系统,它利用统计模型来可视化、分析和预测数据。一个通用的机器学习模型包括一个数据集(用于训练模型)和一个算法(从数据学习)。但是有些模型的准确性通常很低产生的结果也不太准确,克服这个问题的最简单的解决方案之一是在机器学习模型上使用集成学习。
皮大大
2025/01/22
2370
集成学习:Bagging, Boosting,Stacking
好比人做出一个决策时,会从不同方面,不同角度,不同层次去思考(多个自我,多个价值观),这就会有多个决策结果产生,最终我们会选一种决策作为最终决策。
zhangjiqun
2024/12/14
2980
集成学习:Bagging, Boosting,Stacking
机器学习(一)集成学习
1. 关于集成学习的概念   集成学习是机器学习中一个非常重要且热门的分支,是用多个弱分类器构成一个强分类器,其哲学思想是“三个臭皮匠赛过诸葛亮”。一般的弱分类器可以由决策树,神经网络,贝叶斯分类器,K-近邻等构成。已经有学者理论上证明了集成学习的思想是可以提高分类器的性能的,比如说统计上的原因,计算上的原因以及表示上的原因。 1.1 为什么要集成 1)模型选择   假设各弱分类器间具有一定差异性(如不同的算法,或相同算法不同参数配置),这会导致生成的分类决策边界不同,也就是说它们在决策时会犯不同的错误。
机器学习算法工程师
2018/03/06
8020
机器学习(一)集成学习
深度 | 从Boosting到Stacking,概览集成学习的方法与性能
选自Statsbot 作者:Vadim Smolyakov 机器之心编译 参与:Jane W 集成学习(Ensemble learning)通过组合几种模型来提高机器学习的效果。与单一模型相比,该方法可以提供更好的预测结果。正因为如此,集成方法在许多著名的机器学习比赛(如 Netflix、KDD 2009 和 Kaggle 比赛)中能够取得很好的名次。 集成方法是将几种机器学习技术组合成一个预测模型的元算法,以达到减小方差(bagging)、偏差(boosting)或改进预测(stacking)的效果。 集
机器之心
2018/05/08
1.1K0
深度 | 从Boosting到Stacking,概览集成学习的方法与性能
机器学习三人行(系列九)----千变万化的组合算法(附代码)
上节中我们讲解了决策树的使用: 机器学习三人行(系列八)----神奇的分类回归决策树(附代码) 本文我们在决策树的基础上,更进一步的讨论由常用机器学习算法进行组合的集成算法,对集成算法最直接的理解就是三个臭皮匠赛过诸葛亮,通常我们已经建立了一些预测效果较好的算法之后,如果想要得到更好的预测效果,一种思路就是将这些算法组成起来来获取更好的预测效果。在很多的机器学习算法竞赛中,获胜者的方案通常就是将一些效果较好的算法通过集成算法的方式组成起来而获胜的,最著名的当属2006年美国Netflix prize竞赛,获
智能算法
2018/04/03
1.2K0
机器学习三人行(系列九)----千变万化的组合算法(附代码)
Python:使用sklearn进行集成学习
---- 1 前言 2 集成学习是什么? 3 偏差和方差   3.1 模型的偏差和方差是什么?   3.2 bagging的偏差和方差   3.3 boosting的偏差和方差   3.4 模型的独立性   3.5 小结 4 Gradient Boosting   4.1 拟合残差   4.2 拟合反向梯度     4.2.1 契机:引入损失函数     4.2.2 难题一:任意损失函数的最优化    
机器学习AI算法工程
2018/03/15
2K0
Python:使用sklearn进行集成学习
如何领先90%的程序猿小哥哥?
在当下行业大地震的环境中,如何不让自己陷入被替代或被裁员的危机?掌握硬技术,向技术要红利非常重要!
程序员小猿
2021/11/04
5280
如何领先90%的程序猿小哥哥?
简析集成学习
当我们第一次接触机器学习问题的时候,面对着大量的数据和一个分类/回归的机器学习任务,我们本能地会采取这样的方式:选择一个决策树分类器或一个Lasso回归模型,将我们的数据全部灌入模型中,然后以看戏的心态看着模型一步步迭代、完成训练,随后我们看了一眼准确率,感叹一下机器学习的神奇,就感觉自己的任务完成了;随着学习的深入,我们了解到训练集/测试集的切分、交叉验证等一系列的评估手段,进而走入了“调参”的深坑,度过了许多个不眠之夜;经过多次的课程作业或实践任务,利用我们学到的方法和技巧,我们似乎已经能够选择出对某个
企鹅号小编
2018/02/11
9780
简析集成学习
使用集成学习提升机器学习算法性能
Alan Lee
2018/01/02
1.9K0
使用集成学习提升机器学习算法性能
独家 | 一文读懂集成学习(附学习资源)
本文是数据派研究部“集成学习月”的第一篇文章,本月将陆续发布关于集中学习的话题内容,月末将有答题互动活动来赢奖,欢迎随时留言讨论相关话题。 集成算法(Ensemble Algorithms)综述 严格意义上来说,这不算是一种机器学习算法,而更像是一种优化手段或者策略,它通常是结合多个简单的弱机器学习算法,去做更可靠的决策。有人把它称为机器学习中的“屠龙刀”,非常万能且有效,集成模型是一种能在各种的机器学习任务上提高准确率的强有力技术,集成算法往往是很多数据竞赛关键的一步,能够很好地提升算法的性能。哲
数据派THU
2018/01/30
1.9K0
独家 | 一文读懂集成学习(附学习资源)
机器学习 学习笔记(17) 集成学习
集成学习通过构建并结合多个学习器来完成学习任务,有时候也被称为多分类器系统(multi-classifier system)、基于委员会的学习(committee-based learning)等。
2018/09/04
9440
机器学习 学习笔记(17) 集成学习
深入机器学习系列之集成学习
前言:集成学习体现了“More is always better”(多多益善)的思想,它是是目前机器学习的一大热门方向,所谓集成学习简单理解就是指采用多个分类器对数据集进行预测,从而提高整体分类器的泛化能力。
数据猿
2019/07/31
6050
深入机器学习系列之集成学习
《Scikit-Learn与TensorFlow机器学习实用指南》第7章 集成学习和随机森林
第7章 集成学习与随机森林 来源:ApacheCN《Sklearn 与 TensorFlow 机器学习实用指南》翻译项目 译者:@friedhelm739 校对:@飞龙 假设你去随机问很多人一个很复杂的问题,然后把它们的答案合并起来。通常情况下你会发现这个合并的答案比一个专家的答案要好。这就叫做群体智慧。同样的,如果你合并了一组分类器的预测(像分类或者回归),你也会得到一个比单一分类器更好的预测结果。这一组分类器就叫做集成;因此,这个技术就叫做集成学习,一个集成学习算法就叫做集成方法。 例如,你可
ApacheCN_飞龙
2018/05/16
1.4K0
通俗讲解集成学习算法!
本文以图文的形式对模型算法中的集成学习,以及对集中学习在深度学习中的应用进行了详细解读。
Datawhale
2020/06/16
6930
通俗讲解集成学习算法!
《机器学习》-- 第八章 集成学习
集成学习(ensemble learning)指的是将多个学习器进行有效地结合,组建一个“学习器委员会”,其中每个学习器担任委员会成员并行使投票表决权,使得委员会最后的决定更加有效,即泛化性能要能优于其中任何一个学习器。
fireWang
2020/10/09
1.4K0
《机器学习》-- 第八章 集成学习
集成学习提高机器学习效果
集成学习通过综合多个模型来帮助改进机器学习结果。与单一模型相比,这种方法可以产生更好的预测性能。这就是为什么集成方法被广泛应用在许多著名的机器学习竞赛中,比如Netflix Competition,KDD 2009和Kaggle。
hzr
2018/02/02
1.3K0
集成学习提高机器学习效果
集成学习思想
集成学习概念:将多个学习器(也称为基学习器)组合成一个更强大的学习器的机器学习技术。
@小森
2024/05/14
1540
集成学习思想
什么是集成学习算法
经过前面的学习,我们认识了机器学习中的常用回归算法、分类算法和聚类算法,在众多的算法中,除神经网络算法之外,没有一款算法模型预测准确率达到 100%,因此如何提高预测模型的准确率成为业界研究的重点。通过前面内容的学习,你可能会迅速想到一些方法,比如选择一款适合的算法,然后反复调整各种参数,其实这并不是最佳的方法,有以下三点原因:
zhangjiqun
2024/12/14
2310
什么是集成学习算法
推荐阅读
相关推荐
集成学习算法梳理——RF
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档