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

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

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

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

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

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

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

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

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

目前集成模型大致可以分为以下四类:装袋(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 相比,它更简单,信息泄漏的风险更小。

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

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

  1. 赠书 | 集成学习方法及应用,破解AI实践难题

    作者 | 周志华 小编说:<集成学习:基础与算法>上市一周,斩获京东IT新书销量榜第一名桂冠,并拿下京东IT图书销量总榜第二名的惊人成绩. 集成学习方法是一类先进的机器学习方法,这类方法训 ...

  2. 集成学习方法及应用,破解AI实践难题

    集成学习方法是一类先进的机器学习方法,这类方法训练多个学习器并将它们结合起来解决一个问题,在实践中获得了巨大成功,并成为机器学习领域的"常青树",受到学术界和产业界的广泛关注. 集 ...

  3. 2019腾讯广告算法大赛-冠军之路

    点击上方"Datawhale",选择"星标"公众号 第一时间获取价值内容 写在前面 历时三个月腾讯广告算法大赛已经告一段落,在前两届成功经验的基础上,今年大赛在 ...

  4. 一文梳理2019年腾讯广告算法大赛冠军方案

    ‍‍ 点击上方"Datawhale",选择"星标"公众号 第一时间获取价值内容 作为从本次比赛共157队伍中脱颖而出的冠军方案,评分达到87.9683,从数据清 ...

  5. 【数据竞赛】2020腾讯广告算法大赛冠军方案分享及代码

    写在前面 2019年冠军选手成功卫冕!!! 代码地址:https://github.com/guoday/Tencent2020_Rank1st 从初赛冠军.复赛冠军,然后到最佳答辩,一路披荆斩棘,再 ...

  6. 第三届“达观杯”文本智能算法大赛参赛指南

    比赛介绍 2019 年 6 月 28 日,第三届"达观杯"文本智能信息抽取挑战赛正式开赛,同期面向参赛选手开放竞赛结果提交.本届比赛由中国人工智能学会吴文俊人工智能科学技术奖办公室 ...

  7. 【专访】首届腾讯社交广告“高校算法大赛”落幕 冠亚季军团队参赛心得精彩分享

    导言: 7月6日,首届腾讯社交广告"高校算法大赛"正式落幕.在众多参赛团队中,来自南京大学的三人组合"nju_newbie"一举夺得决赛冠军,将30万元奖金收入 ...

  8. 2017年中兴算法大赛 迪杰特斯拉派

    总结:本人2017年参加的比赛,对于初次参加算法大赛的作者来说,异常激动又有点小窃喜,最后在赛区拿到24名的名次,名次不算高,但是对于一步步解决问题过来的我,经验与经历更为重要,再次做一个小小的总结, ...

  9. 2020腾讯广告算法大赛分享(冠军)

    写在前面 2019年冠军选手成功卫冕! 代码地址:https://github.com/guoday/Tencent2020_Rank1st 从初赛冠军.复赛冠军,然后到最佳答辩,一路披荆斩棘,再次感 ...

  10. 2020腾讯广告算法大赛:赛题理解与解题思路

    写在前面 期待已久的2020腾讯广告算法大赛终于开始了,本届赛题"广告受众基础属性预估".本文将给出解题思路,以及最完备的竞赛资料,助力各位取得优异成绩!!! 报名链接:https ...

最新文章

  1. FreePBX SIP Trunk
  2. Windows系统软件推荐
  3. composer查看当前镜像取消_国内全量镜像大全
  4. [vue] 怎么在vue中使用插件?
  5. 计算机联锁软件毕设论文,铁路信号计算机联锁系统()毕设论文.doc
  6. JAVA的项目文件夹_Java中Project项目文件夹的绝对路径
  7. 解决 Laravel/Lumen 出现 Please provide a valid cache path 问题
  8. Atitit gis之道 attilax著
  9. java开发实例大全_java编程实例大全100例
  10. 用Python怎样实现Excel中的公式向下填充?
  11. 微信小程序熊猫抽奖盒子panda_luckybox3.3.1多开版
  12. winRAR 离购买许可只剩xx天
  13. 3种方法设置PPT文件保护
  14. 群发“站内信”的实现
  15. 【BH区块链项目热点问答】加拿大石油公司利用废弃天然气为挖掘BTC提供动力。你怎么看?...
  16. Codevs 4246 奶牛的身高
  17. BootstrapTable去掉表格与分页的空白
  18. #10049. 「一本通 2.3 例 1」Phone List(trie树应用)
  19. 英语学习时间:《新概念英语第二册》Lesson 1 笔记
  20. PostgreSQL:十五. 性能优化

热门文章

  1. xp无法连接win10计算机,win10共享的打印机xp无法连接
  2. Graphene(石墨烯)区块传播技术能够实现10倍的更高效率
  3. 无线通信学习笔记(三)
  4. 2018个人年度工作总结与2019工作计划(互联网)
  5. 灵遁者组诗:无数个存在的可能
  6. [渝粤教育] 南京师范大学 中国古代文学(一) 参考 资料
  7. 全国计算机二级重难点,计算机二级office重难点.doc
  8. 王松波 计算机科学,王松波-华南农业大学华南农业大学动物科学学院
  9. python计算贷款购房月供、利息
  10. linux的cd命名返回上级目录,返回根目录