Stacking算法

简介: 大家都是只关注stacking的操作是什么,虽然这很重要,但是却没有说明白为何有效。这一直是困惑我的点,我想通过论文搞清这些东西。貌似没找到,找到再贴。  我们将假设训练数据:train.csv有1000行;测试数据:test.csv有200行。

大家都是只关注stacking的操作是什么,虽然这很重要,但是却没有说明白为何有效。这一直是困惑我的点,我想通过论文搞清这些东西。貌似没找到,找到再贴。
  我们将假设训练数据:train.csv有1000行;测试数据:test.csv有200行。然后按照下图所示训练:

img_d5fdb128e94f58fdf6508dfa05935166.jpe

如图所示,我们现在用5折交叉验证来训练数据,model1要做满5次训练和预测。
第一次,model1,拿train.csv的800行做训练集,200行做验证集,然后预测出200行的数据a1。
第二次,model1,拿train.csv的800行做训练集,200行做验证集,然后预测出200行的数据a2。
第三次,model1,拿train.csv的800行做训练集,200行做验证集,然后预测出200行的数据a3。
第四次,model1,拿train.csv的800行做训练集,200行做验证集,然后预测出200行的数据a4。
第五次,model1,拿train.csv的800行做训练集,200行做验证集,然后预测出200行的数据a5。
然后将a1到a5拼接起来,得到一列,共1000行的数据。
针对测试集test.csv有两种方法,一种是全部训练完成后,一次性预测输出200行数据;另一种是model1每次做完训练就那test.csv中的数据做预测,一种得到5次200行的数据,然后做平均,得到一列200行的数据。
如果有10个基模型,那么根据train.csv会得到10列数据,作为x, 原来train.csv中的label作为y(很多文章都没说这点,导致初学者有很多误解),然后再放到一个模型中做训练。而根据test.csv会得到10列200行的数据,作为测试数据。
最后,将训练好的模型预测10列200行的数据,得到的最终结果就是最后需要的数据。这仅仅只是2层stacking,多的可以搞很多层。

最后,我想贴一些现成的stacking的框架的链接:
https://github.com/liyi19950329/stacking
https://github.com/liyi19950329/vecstack
https://github.com/liyi19950329/mlens
https://github.com/rasbt/mlxtend
https://github.com/mpearmain/gestalt
https://github.com/reiinakano/xcessiv
https://github.com/kaz-Anova/StackNet
这些框架都集成好了,学会使用就能实现stacking,不过我还是建议看看源码
如果源码看不下去,可以看看kaggle的教程:https://www.kaggle.com/arthurtok/introduction-to-ensembling-stacking-in-python

Blending:用不相交的数据训练不同的 Base Model,将它们的输出取(加权)平均。实现简单,但对训练数据利用少了。

目录
相关文章
|
5月前
|
机器学习/深度学习 存储 人工智能
【机器学习】GBDT (Gradient Boosting Decision Tree) 深入解析
GBDT,全称为Gradient Boosting Decision Tree,即梯度提升决策树,是机器学习领域中一种高效且强大的集成学习方法。它通过迭代地添加决策树以逐步降低预测误差,从而在各种任务中,尤其是回归和分类问题上表现出色。本文将深入浅出地介绍GBDT的基本原理、算法流程、关键参数调整策略以及其在实际应用中的表现与优化技巧。
1297 1
|
5月前
|
机器学习/深度学习 算法 搜索推荐
KNN算法(k近邻算法)原理及总结
KNN算法(k近邻算法)原理及总结
|
数据处理 知识图谱 iOS开发
集成学习:Bagging Boosting&Stacking (二)
集成学习:Bagging Boosting&Stacking (二)
109 0
|
机器学习/深度学习 算法
集成学习:Bagging Boosting&Stacking (一)
集成学习:Bagging Boosting&Stacking (一)
110 0
|
机器学习/深度学习 编解码 算法
What?UFO! | UFO-ViT用X-Norm让你的Transformer模型回归线性复杂度(一)
What?UFO! | UFO-ViT用X-Norm让你的Transformer模型回归线性复杂度(一)
126 0
|
机器学习/深度学习 数据挖掘 计算机视觉
What?UFO! | UFO-ViT用X-Norm让你的Transformer模型回归线性复杂度(二)
What?UFO! | UFO-ViT用X-Norm让你的Transformer模型回归线性复杂度(二)
159 0
|
机器学习/深度学习 并行计算 算法
集成学习算法策略 Boosting和Bagging
集成学习算法策略 Boosting和Bagging
|
机器学习/深度学习 数据采集 前端开发
机器学习--方差和偏差、Bagging、Boosting、Stacking
机器学习--方差和偏差、Bagging、Boosting、Stacking
409 0
机器学习--方差和偏差、Bagging、Boosting、Stacking
|
机器学习/深度学习 算法
梯度下降算法原理 神经网络(Gradient Descent)
梯度下降算法原理 神经网络(Gradient Descent)
204 0
梯度下降算法原理 神经网络(Gradient Descent)
|
机器学习/深度学习 算法 前端开发
集成学习之随机森林、Adaboost、Gradient Boosting、XGBoost原理及使用
集成学习之随机森林、Adaboost、Gradient Boosting、XGBoost原理及使用
499 0
集成学习之随机森林、Adaboost、Gradient Boosting、XGBoost原理及使用
下一篇
无影云桌面