我试图了解堆叠是如何工作的,但到目前为止我不确定我是否理解正确。所以这是我到目前为止所理解的:
我们用完整的数据集训练每个k个基学习器(level-0)。
我们让k个基学习器中的每一个预测整个数据集。
我们从k个基学习器的所有预测中创建一个新数据集。新数据集看起来像我们的原始数据集 + 每个基础学习器的预测。
该数据集用于训练元学习器(1 级)。
我的问题:
- 到目前为止这是正确的吗?
- 我经常读到交叉验证以某种方式用于堆叠,但我不知道它是如何使用的?或者它甚至是我缺少的重要部分?
非常感谢
我试图了解堆叠是如何工作的,但到目前为止我不确定我是否理解正确。所以这是我到目前为止所理解的:
我们用完整的数据集训练每个k个基学习器(level-0)。
我们让k个基学习器中的每一个预测整个数据集。
我们从k个基学习器的所有预测中创建一个新数据集。新数据集看起来像我们的原始数据集 + 每个基础学习器的预测。
该数据集用于训练元学习器(1 级)。
我的问题:
非常感谢
您的理解大多是正确的!在
新数据集看起来像我们的原始数据集 + 每个基础学习器的预测。
可以使用每个基础学习器的原始特征 + 预测,但是当人们谈论堆叠时,他们通常只使用每个基础学习器的预测。
我经常读到交叉验证以某种方式用于堆叠,但我不知道它是如何使用的?或者它甚至是我缺少的重要部分?
是的,交叉验证通常与堆叠一起使用。发生的情况是,当您按照您的描述进行操作时,元模型(您称之为级别 1)可能会过度拟合基本模型所做的预测,因为每个预测都是在查看整个数据集后进行的。
因此,您要做的是交叉验证,并将数据分解为 k 折。您使用对第 k 个保留折叠的预测(循环通过所有 k 个折叠)来获得(希望)无偏估计模型将对看不见的数据进行预测。然后你将元模型拟合到那些(那里没有交叉验证)。