我正在努力找出如何正确创建回归集合。我知道有各种各样的选择。我使用以下方法。首先,我定义了线性回归、GBM等模型。然后,我为每个模型运行GridSearchCV,以了解最佳参数。在这之后,我想在考虑每个模型的单独预测的同时做出最终预测。问题是如何正确地将单个预测合并为单个Y向量?将权重系数分配给每个预测不适合于回归问题。如果是,那么如何获得这样的权重系数?也许好的方法是使用个人预测作为训练集来训练元模型?
免责声明:我没有训练团的个人经验,但我也对这个话题感兴趣。
- 我在训练组合中发现的大多数资源都涉及分类问题。除了维基百科的文章外,我还发现了一篇好文章:http://mlwave.com/kaggle-ensembling-guide/但对于回归,本文仅列出平均。可以为每个模型分配权重系数,例如基于交叉验证性能,预测仍然有意义:你只需要对系数进行归一化,使它们的总和达到1.0
- 另一种选择是进行助推:你训练你的模型在对另一个和每个连续模型的误差进行训练之后之前的模型。也就是说,如果第一个模型有预测太高了,下一个模型将尝试预测一个负该样本的值(以便模型预测的总和等于实际训练目标)。维基百科中的这一小段可能有助于理解:https://en.wikipedia.org/wiki/Ensemble_learning#Boosting
- 据我所读,装袋(引导聚合)似乎对回归有效。你只需要一个训练数据的随机子集。然后进行预测平均值(所有型号的重量相同)。这里描述了如何对训练数据进行采样的细节
- 堆叠是您已经提出的建议:使用元分类器,将模型的输出作为数据。解释和如何实现这一点的详细信息可以在这里找到,例如: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