【发布时间】:2020-10-01 11:19:10
【问题描述】:
刚开始使用 H2O AutoML,所以如果我错过了一些基本的东西,请提前道歉。
我有一个二元分类问题,其中数据是 K 年的观察结果。我想在 K-1 年进行训练并调整模型并根据剩余的 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 验证帧被忽略 “...默认情况下,当 nfolds > 1 时,交叉验证指标将用于提前停止,因此将忽略 validation_frame。”
有没有办法仅根据 K-year 数据调整模型并选择最佳模型(集成与否),而输出中也提供模型集成?
非常感谢!
【问题讨论】:
-
您好,相信您误会了。例如,将您的训练数据框定义为 k-2 年,将验证数据框定义为 k-1 年,将测试集定义为 k 年,您将创建集成模型。验证数据集是选择用于测试集的最佳超参数的另一种方式。
-
感谢您的建议,但我认为在这种情况下将忽略validation_frame(根据文档)。为了确保在 validation_frame 上完成模型超参数调整,我必须明确设置 nfolds=0。这反过来意味着不会创建任何合奏。
-
抱歉,是的,您是正确的,您需要根据文档指定 n_folds = 0 和 yes,不会创建 ensemble。但是,您可以采用的另一种方法是分别创建您的个人模型,然后创建您的自定义集成模型。见下方Python代码链接(docs.h2o.ai/h2o/latest-stable/h2o-docs/data-science/algo-params/…)