如何正确合并模型中模型的输出?

How to properly merge outputs from models in the ensemble?

我正在尝试弄清楚如何正确创建回归集成。我知道有多种选择。我使用以下方法。 首先,我定义了线性回归、GBM 等模型。然后我 运行 GridSearchCV 为每个模型定义最佳参数。在此之后,我想在考虑每个模型的个别预测的同时做出最终预测。 问题是如何将单个预测正确合并到单个 Y 向量中?它认为为每个预测分配权重系数不适用于回归问题。如果是,那么如何获得这样的权重系数呢? 也许好的方法是使用个人预测作为训练集来训练元模型?

免责声明:我个人没有训练集成的经验,但我对这个话题也很感兴趣。

  1. 我发现的关于训练集成的大多数资源都处理分类问题。除了维基百科文章之外,我发现的一篇好文章是:http://mlwave.com/kaggle-ensembling-guide/ 但是对于回归,该文章仅列出了 平均 。可以分配权重系数,例如基于交叉验证性能,对于每个模型和预测仍然有意义:您只需对系数进行归一化,使它们总和为 1.0。
  2. 另一个选择是 boosting:你训练你的模型 一个接一个,每个连续的模型都接受了错误的训练 以前的模型。意思是,如果第一个模型有预测 这太高了,下一个模型将尝试预测负值 该样本的值(以便模型预测的总和 等于真正的训练目标)。维基百科中的这段短文 可能有助于理解它: https://en.wikipedia.org/wiki/Ensemble_learning#Boosting
  3. 据我所知,装袋(bootstrap聚合)也 似乎适用于回归。你只用一个训练每个模型 训练数据的随机子集。然后为了预测你采取 平均值(所有模型具有相同的权重)。 here.
  4. 描述了如何对训练数据进行采样的详细信息
  5. Stacking 是您已经建议的:使用元分类器将模型的输出作为数据。一个解释和 可以在此处找到有关如何实现的详细信息: https://docs.rapidminer.com/latest/studio/operators/modeling/predictive/ensembles/stacking.html

此外,还有一个相关问题,其中包含有关 交叉验证 的更多信息:https://stats.stackexchange.com/questions/18891/bagging-boosting-and-stacking-in-machine-learning