r语言 - 如何迭代训练 h2o automl 模型



我试图使用 h2o.automl() 进行训练。但由于超时,培训退出。我知道max_runtime_secs可以设置为更高的数字。但是,如果我们能训练 1 小时,然后将其保存在某个地方,那就太好了。第二天再次训练它,从第 1 天离开的地方开始。

怎么办呢?

我已经尝试通过设置project_name - 但在退出时没有保存任何内容。因此,如果我们关闭PC并重新启动,则毫无用处。

我为此使用了以下代码:

library( h2o )
h2o.init( nthreads = -1, max_mem_size = '10240m' )
train = h2o.importFile( 'train.csv' )
automl_model = h2o.automl( y = 'outcome', training_frame = train, nfolds = 3, max_runtime_secs = 1800,
                           project_name = 'automl_aus_tennis' )

火车链接.csv : http://www.mediafire.com/file/qj7yiju15ncgnax/train.csv

您可以使用

相同的project_name和不同的种子重复运行h2o.automl(),以构建其他模型并将它们添加到同一leaderboard。 我一直这样做。

有一个拉取请求,应该很快就会进入,它允许您指定算法不运行。 这允许您调整在每次AutoML运行时执行哪些超参数搜索。

您需要保持 h2o-3 实例运行以实现您的目标,因为您当前无法将AutoML运行的状态保存到磁盘并将其加载到新的h2o-3实例中,或者将从磁盘加载的模型添加到leaderboard中。 这些将是有用的功能请求。 :-)

如果关闭 H2O 群集(或计算机(并在以后重新启动 H2O 群集,则无法继续运行 H2O AutoML 作业。 如果让 H2O 群集保持运行状态,则可以通过将 h2o.automl()project_name 的值相同来将更多模型添加到排行榜。

如果需要在运行之间关闭 H2O 群集,则最好的办法是在第二次、第三次、第四次等时间运行时在 h2o.automl() 函数中设置不同的seed,因为 AutoML 运行中的随机网格搜索会有所不同。 这样,你可能会获得新模型,而不是已经在以前的 AutoML 运行中训练的模型。

最新更新