我试图弄清楚如何正确创建回归合奏。我知道有多种选择。我使用以下方法。首先,我定义了线性回归、GBM 等模型。然后我为每个模型运行 GridSearchCV 以了解最佳参数。在此之后,我想在考虑每个模型的单独预测的同时做出最终预测。问题是如何正确地将单个预测合并到单个 Y 向量中?似乎为每个预测分配权重系数不适合回归问题。如果是,那么如何获得这样的权重系数?也许好的方法是使用个体预测作为训练集来训练元模型?
问问题
1133 次
1 回答
3
免责声明:我没有训练合奏的个人经验,但我也对这个话题感兴趣。
- 我在训练集成中找到的大多数资源都处理分类问题。除了维基百科的文章,我发现的一篇好文章是: http: //mlwave.com/kaggle-ensembling-guide/但是对于回归,这篇文章只列出了averaging。可以为每个模型分配权重系数,例如基于交叉验证性能,并且预测仍然有意义:您只需对系数进行归一化,使其总和为 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
于 2015-12-12T11:05:16.380 回答