Evalml: AutoML:使用单独的 CV 拆分进行集成

创建于 2021-01-26  ·  4评论  ·  资料来源: alteryx/evalml

#1732 更新我们的堆叠集成管道以使用AutoML使用的相同数据拆分器。 我们继续使用#1732,因为我们相信它仍然是对我们当前方法(scikit-learn 默认)的改进。

此问题跟踪我们可能希望对数据拆分器进行的长期更新,以便在 AutoML 中进行堆叠。


更新:在继续更新 #1732 的同时,我们遇到了堆叠和 AutoML 之间交互的难题,这让我们重新审视对堆叠集成使用与我们在 AutoML 中使用的相同的数据拆分是否真的是个好主意。 我们决定不,正如雷蒙德指出的那样,我们可能想为我们的合奏使用单独的简历。 ( @dsherry还提到了一个很好的信息,即使用集成可以使模型对更复杂的模型不太重视,因此 CV 可能对此有所帮助 - 如果我的解释有误,请纠正我😂)。

与其继续这项工作,我们应该使用这个问题来讨论更新 AutoML 以进行堆叠:具体来说,我们应该为堆叠集成

enhancement performance

最有用的评论

计划:如果启用堆叠,我们将创建一个单独的拆分,可以将其传递给 CV 的堆叠集成

研究支持使用样本外预测(验证从原始 CV 拆分)作为传递给堆叠的数据可能很巧妙。 但是,我建议我们从更简单的方法开始,如果启用了堆叠,则只创建一个单独的拆分。

RE我们的讨论,一些支持证据说明为什么我们应该保留一个单独的分裂,堆叠集成可以用来执行CV:

  • “通过使用交叉验证的[预测],堆叠避免了给复杂度更高的模型不公平的高权重。” 又名过拟合
  • “为元模型准备训练数据集的最常见方法是通过基础模型的 k 折交叉验证,其中折叠预测用作元模型训练数据集的基础. 元模型的训练数据还可以包括基本模型的输入,例如训练数据的输入元素。这可以为元模型提供关于如何最好地结合来自元模型的预测的额外上下文。模型。一旦为元模型准备了训练数据集,就可以在这个数据集上单独训练元模型,并且可以在整个原始训练数据集上训练基础模型。” --博文
  • “重要的是,元学习器是在单独的数据集上训练的,用于训练 0 级模型的示例以避免过度拟合。” ——另一篇博文
  • 原始论文摘要讨论了如何将堆叠集成视为交叉验证的概括
  • 我也发现是一本很好的读物。

@rpeck仅供参考,经过一些

所有4条评论

计划:如果启用堆叠,我们将创建一个单独的拆分,可以将其传递给 CV 的堆叠集成

研究支持使用样本外预测(验证从原始 CV 拆分)作为传递给堆叠的数据可能很巧妙。 但是,我建议我们从更简单的方法开始,如果启用了堆叠,则只创建一个单独的拆分。

RE我们的讨论,一些支持证据说明为什么我们应该保留一个单独的分裂,堆叠集成可以用来执行CV:

  • “通过使用交叉验证的[预测],堆叠避免了给复杂度更高的模型不公平的高权重。” 又名过拟合
  • “为元模型准备训练数据集的最常见方法是通过基础模型的 k 折交叉验证,其中折叠预测用作元模型训练数据集的基础. 元模型的训练数据还可以包括基本模型的输入,例如训练数据的输入元素。这可以为元模型提供关于如何最好地结合来自元模型的预测的额外上下文。模型。一旦为元模型准备了训练数据集,就可以在这个数据集上单独训练元模型,并且可以在整个原始训练数据集上训练基础模型。” --博文
  • “重要的是,元学习器是在单独的数据集上训练的,用于训练 0 级模型的示例以避免过度拟合。” ——另一篇博文
  • 原始论文摘要讨论了如何将堆叠集成视为交叉验证的概括
  • 我也发现是一本很好的读物。

@rpeck仅供参考,经过一些

@dsherry @rpeck @angela97lin我开始研究这个问题,但似乎 sklearn 的StackedClassifierStackedRegressor在模型训练期间确实使用了内部交叉验证,以防止过度拟合。 这似乎与我们试图解决此问题的问题相同,因此似乎应该解决。 我认为我们不需要为训练/验证 Stacked Ensembling 方法进行单独的 CV 折叠,但是你们都怎么想?

image

在与@dsherry讨论后,这是我们想要继续的想法

@bchen1116讨论的计划:此问题跟踪:

  • 创建单独的拆分以训练集成管道的元学习
  • 继续使用sklearn impl进行stacked ensembling

单独性能增强:更好地支持小数据。 不要为集成创建单独的拆分。 使用来自正常 CV(来自所有 CV 折叠)的样本外管道预测来训练集成器。 第1898章

另一个单独的性能增强:在不同的数据上训练管道和 metalearner。 第1897章

此页面是否有帮助?
0 / 5 - 0 等级