在 H2O AutoML 中使用 validation_frame

Use of validation_frame in H2O AutoML

刚开始使用 H2O AutoML,如果我错过了一些基本的东西,请提前致歉。

我有一个二进制分类问题,其中数据是 K 年的观察结果。我想在 K-1 年进行训练并调整模型,select 明确根据剩余的 K 年选择最佳模型。

如果我关闭交叉验证(nfolds=0)以避免将年份随机混合到 N 折中并将年份 K 的数据定义为 validation_frame 那么我没有创建合奏(正如文档所预期的那样)这实际上是我需要的。

如果我使用交叉验证(默认 nfolds)进行训练并将验证框架定义为 K 年数据

aml = H2OAutoML(max_runtime_secs=3600, seed=1)
aml.train(x=x,y=y, training_frame=k-1_years, validation_frame=k_year)

然后根据 http://docs.h2o.ai/h2o/latest-stable/h2o-docs/automl.html validation_frame 被忽略 “...默认情况下,当 nfolds > 1 时,交叉验证指标将用于提前停止,因此 validation_frame 将被忽略。”

有没有一种方法可以仅根据 K 年数据来调整模型和 select 最好的模型(整体或非整体)的离子,同时模型的整体也是在输出中可用?

非常感谢!

如果您正在处理 times-series (non-IID) 数据,您不希望拥有 cross-validation (CV),因为您不希望从未来折叠到预测过去。

我会明确添加 nfolds=0 以便在 AutoML 中禁用 CV:

aml = H2OAutoML(max_runtime_secs=3600, seed=1, nfolds=0)
aml.train(x=x,y=y, training_frame=k-1_years, validation_frame=k_year)

要有一个合奏,请添加一个 blending_frame,这也适用于 time-series。查看更多信息 here

此外,由于您正在处理 time-series 数据。我建议添加 time-series 转换(例如滞后),以便您的模型从前几年及其汇总中获取信息(例如加权移动平均数)。