h2o - 在 H2O AutoML 中使用 validation_frame
问题描述
刚开始使用 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,validation_frame 被忽略“......默认情况下,当nfolds> 1时,交叉验证指标将用于提前停止,因此validation_frame 将被忽略。”
有没有办法仅根据 K 年数据来调整模型并选择最好的模型(无论是否集成),而模型的集成也可以在输出中使用?
非常感谢!
解决方案
如果您正在处理时间序列(非 IID)数据,您不希望进行交叉验证 (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
也适用于时间序列的。在此处查看更多信息。
此外,由于您正在处理时间序列数据。我建议添加时间序列转换(例如滞后),以便您的模型从前几年及其聚合中获取信息(例如加权移动平均线)。
推荐阅读
- python - 搜索多个不同匹配项时如何找到子字符串的索引?
- unity3d - 如何将从 .X 导入的 Matrix4x4 转换为 Unity?
- python - VS Code中Python的Theano属性错误/循环导入部分初始化模块问题
- image-size - 在 Luna 主题中更改产品图像大小
- python - Flask-Migrate 不能降级到带有合并头的 down_revision
- java - 未解析的类名:android studio 中的 com.google.inject.Binder 和 com.google.inject.Inject
- react-native - 未找到 React Native 模块:无法使用 react-native-router-flux 解析“@react-navigation/core”
- c# - 如何通过代码访问 T4 输出文件的名称?
- yarnpkg - 如何在纱线中设置无代理
- presto - Presto 无法读取十六进制字符串:不是有效的 base-16 数字