zoukankan      html  css  js  c++  java
  • stacking思想

    一开始stacking和bagging傻fufu分不清

    stacking

    一张经典的图
    image

    假设训练数据:train.csv有1000行;测试数据:test.csv有250行。然后按照上图所示训练:

    假设model1是一个基模型xgboost,进行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有两种方法,一种是全部训练完成后,一次性预测输出250行数据;另一种是model1每次做完训练就拿test.csv中的数据做预测,一种得到5次250行的数据,然后做平均,得到一列250行的数据。

    如果有10个基模型,那么根据train.csv会得到10列数据,作为x,原来train.csv中的label作为y(很多文章都没说这点,导致初学者有很多误解),然后再放到一个模型中做训练。而根据test.csv会得到10列250行的数据,作为测试数据。
    最后,将训练好的模型预测10列200行的数据,得到的最终结果就是最后需要的数据。这仅仅只是2层stacking,多的可以搞很多层。放开那个BUG

    这篇讲的更清楚一些

  • 相关阅读:
    log4net GetLogger(source).IsInfoEnabled = false
    nginx配置
    mysql数据库备份
    按序号批量更新某个字段
    MySql 执行 DELETE/UPDATE时,报 Error Code: 1175错误
    ef学习记录
    vue-cli3实行路径联想
    GitHub分支创建及合并
    Git本地分支和远程分支关联
    uniapp(三)
  • 原文地址:https://www.cnblogs.com/gaowenxingxing/p/12552570.html
Copyright © 2011-2022 走看看