堆叠,堆叠泛化算法



我试图了解堆叠是如何工作的,但到目前为止,我不确定我是否正确理解它。以下是我目前所理解的:

  1. 我们用完整的数据集训练每个k基础学习器(0级)。

  2. 我们让每个k基学习器预测整个数据集。

  3. 我们从k基学习器的所有预测中创建一个新的数据集。新数据集看起来像我们的原始数据集+每个基础学习器的预测。

  4. 此数据集用于训练元学习器(1级)。

我的问题:

  1. 到目前为止这是正确的吗?
  2. 我经常读到交叉验证以某种方式用于堆叠,但我无法弄清楚,它是如何使用的?或者它是我错过的重要部分吗?

多谢

你的理解基本上是正确的!在

新数据集看起来像我们的原始数据集+每个基础学习器的预测。

一个可以使用原始特征+每个基础学习器的预测,但是当人们谈论堆叠时,他们通常只使用每个基础学习器的预测。

我经常读到交叉验证以某种方式用于堆叠,但我无法弄清楚,它是如何使用的?或者它是我错过的重要部分吗?

是的,交叉验证经常与堆叠一起使用。当你按照你所描述的那样做时,元模型(你称之为一级模型)可能会过度拟合基本模型所做的预测,因为每个预测都是在看到整个数据集的情况下做出的。

所以你要做的是交叉验证,把数据分成k个折叠。您使用对第k次进行的预测(遍历所有k次)来获得(希望)对模型对未见数据的预测的无偏估计。然后将元模型拟合到这些模型中(没有交叉验证)。

相关内容

  • 没有找到相关文章

最新更新