前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >机器学习入门 13-7 Stacking

机器学习入门 13-7 Stacking

作者头像
触摸壹缕阳光
发布2022-04-27 17:29:07
4710
发布2022-04-27 17:29:07
举报
Stacking

13.2 小节介绍过一种叫做 Voting Classifier 集成学习的方法。这种方法的思路非常简单,比如有三个模型,将数据集在每一个模型上进行预测,最后综合三个模型的结果。

  • 对于分类任务,最后的分类结果使用少数服从多数的原则;
  • 对于回归任务,最后的回归值可以取平均值。

Stacking 是另外一种集成学习方法。比如还是三个模型,对于 Stacking 方法来说,依然是将数据集分别在三个模型上进行预测,然后我们将这三个模型的预测结果作为新添加模型的输入(Voting Classifier 是将三个模型的结果直接综合考虑),将这个新添加模型的输出作为最终的预测结果。

训练 Stacking

了解了 Stacking 集成学习方法,那要如何训练一个 Stacking 集成学习的分类器呢?首先我们先将我们的训练数据集划分成两份:

  • 第一份数据集用来训练底层的三个模型;
  • 第二份数据集用来训练第二层的第四个模型。

首先使用第一份数据集分别将底层的三个模型训练好,将第二份数据集输入到训练好的三个模型中,得到的输出结果和第二份数据集的标签构成一个新的数据集,最后用新的数据集来训练第二层上的第四个模型,最终形成 Stacking 集成学习的模型。

根据上面的训练方法,我们可以构建出更加复杂的 Stacking 模型。比如下图堆叠了三层。

第一层三个模型的输出作为第二层三个模型的输入,将第二层的三个模型的输出作为第三层模型的输入。

前面训练两层的 Stacking 模型需要将数据集划分为两份。训练三层的 Stacking 模型需要将数据集划分为三份。

  • 第一份数据集用于训练第一层的三个模型;
  • 第二份数据集用于训练第二层的三个模型;
  • 第三份数据集用于训练第三层的最后一个模型。

这也能够看出来,Stacking 中的层数和每层中的模型个数都是一个超参数。正因为如此,Stacking 这种集成学习模型可能会很复杂,所以 Stacking 非常容易过拟合。

这种 Stacking 堆叠层的方法与神经网络非常相似,只不过对于神经网络而言,每一个神经元不是一个全新的算法模型,而是计算一个函数的值。加深层数的神经网络被称为深度学习,层数越多虽然会增强网络的表达能力,但是也会引发很多问题,这其中就包括和 Stacking 相似的过拟合问题。

Sklearn 实现 Stacking

Sklearn 中并没有提供 Stacking 集成学习的接口。

References: Python3入门机器学习 经典算法与应用: https://coding.imooc.com/class/chapter/169.html#Anchor

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

本文分享自 AI机器学习与深度学习算法 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 训练 Stacking
  • Sklearn 实现 Stacking
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档