#1732 更新我们的堆叠集成管道以使用 AutoML
使用的相同数据拆分器。我们继续使用#1732,因为我们相信它仍然是对我们当前方法(scikit-learn 默认)的改进。
此问题跟踪我们可能希望对数据拆分器进行的长期更新,以便在 AutoML 中进行堆叠。
更新:在继续更新 #1732 的同时,我们遇到了堆叠和 AutoML 之间交互的难题,这让我们重新审视对堆叠集成使用与我们在 AutoML 中使用的相同的数据拆分是否真的是个好主意。 我们决定不,正如雷蒙德指出的那样,我们可能想为我们的合奏使用单独的简历。 ( @dsherry还提到了一个很好的信息,即使用集成可以使模型对更复杂的模型不太重视,因此 CV 可能对此有所帮助 - 如果我的解释有误,请纠正我😂)。
与其继续这项工作,我们应该使用这个问题来讨论更新 AutoML 以进行堆叠:具体来说,我们应该为堆叠集成
计划:如果启用堆叠,我们将创建一个单独的拆分,可以将其传递给 CV 的堆叠集成
研究支持使用样本外预测(验证从原始 CV 拆分)作为传递给堆叠的数据可能很巧妙。 但是,我建议我们从更简单的方法开始,如果启用了堆叠,则只创建一个单独的拆分。
RE我们的讨论,一些支持证据说明为什么我们应该保留一个单独的分裂,堆叠集成可以用来执行CV:
@rpeck仅供参考,经过一些
@dsherry @rpeck @angela97lin我开始研究这个问题,但似乎 sklearn 的StackedClassifier
和StackedRegressor
类在模型训练期间确实使用了内部交叉验证,以防止过度拟合。 这似乎与我们试图解决此问题的问题相同,因此似乎应该解决。 我认为我们不需要为训练/验证 Stacked Ensembling 方法进行单独的 CV 折叠,但是你们都怎么想?
在与@dsherry讨论后,这是我们想要继续的想法
与@bchen1116讨论的计划:此问题跟踪:
单独性能增强:更好地支持小数据。 不要为集成创建单独的拆分。 使用来自正常 CV(来自所有 CV 折叠)的样本外管道预测来训练集成器。 第1898章
另一个单独的性能增强:在不同的数据上训练管道和 metalearner。 第1897章
最有用的评论
计划:如果启用堆叠,我们将创建一个单独的拆分,可以将其传递给 CV 的堆叠集成
研究支持使用样本外预测(验证从原始 CV 拆分)作为传递给堆叠的数据可能很巧妙。 但是,我建议我们从更简单的方法开始,如果启用了堆叠,则只创建一个单独的拆分。
RE我们的讨论,一些支持证据说明为什么我们应该保留一个单独的分裂,堆叠集成可以用来执行CV:
@rpeck仅供参考,经过一些