堆叠模型的超参数调整

数据挖掘 机器学习 交叉验证 超参数 超参数调整 卡格尔
2021-10-03 19:20:59

我正在阅读以下 kaggle 帖子以了解如何合并模型堆叠

http://blog.kaggle.com/2016/12/27/a-kagglers-guide-to-model-stacking-in-practice/ 在 ML 模型中。构建 5 折和在训练数据上创建样本预测背后的结构对于在基础模型之上构建元模型或模型是有意义的。但是我不确定它如何使用超参数调整,特别是对于基本模型。

所以脱离样本预测的概念对我来说很有意义。我们基本上对 5 折中的每一个都使用其他 4 折进行训练,然后在第五折进行预测。那么,我们如何在不增加偏差的情况下实际对同一数据集上的基础模型进行超参数调整,在我看来这是不可能的?

请注意,我假设没有更多数据可供使用。我会很感激任何帮助!

1个回答

不要将数据分成 k-fold 和交叉验证。

您可以使用 4 折(训练数据)来优化基分类器。您还可以通过对训练数据应用交叉验证来找到最佳超参数,使用所有训练数据(4 折)重新训练,然后使用最后一折进行测试以生成元数据。

完成生成元数据后,您现在可以使用 5 折中的所有数据来训练基础学习器。最终的基分类器集与用于生成元数据的基分类器之间的收敛性越高,效果就越好。这就是为什么您拥有的数据越少,您需要使用的 k 越大,反之亦然。

最后,您使用元数据来训练元分类器

这是要考虑的最后一个注意事项:使用交叉验证来优化基础学习器可能不是很有用,但为什么呢?如果您可以使用 N 种不同的训练算法,并且可以使用交叉验证来优化它们并选择最佳的一种(导致偏差误差非常低的一种),那么您很有可能不需要使用堆叠。但是当所有这 N 个算法都不能导致 0 偏差误差(如果你有方差误差使用 bagging)时,堆叠是非常有益的,这种情况可能会混淆交叉验证算法。另一件事是使用交叉验证来优化算法可能会导致不同的算法具有相似的偏差,这会降低堆叠技术的好处。

您需要知道堆叠是最棘手的集合之一,这就是为什么与 bagging 和 boosting 相比,它在文献中没有得到很好的研究。另一方面,事实证明它非常重要,特别是对于实际目的。