我对h2o还是陌生的,所以我想尽一切办法。我当前使用的是automl,并且在排行榜上的模型中,我我决定使用第3个模型而不是排行榜模型。
我使用下面的代码执行此操作,然后获取该特定模型的参数。然后,我手动检查与默认参数不同的实际参数,并使用它们来定义我的模型。
#choosing the 3rd model from the leaderboard
chosen_model = h2o.get_model(aml.leaderboard.as_data_frame()['model_id'][2])
#getting the model parameters
chosen_model.params
# example result including only some of the parameters
{'model_id': {'default': None,
'actual': {'__meta': {'schema_version': 3,
'schema_name': 'ModelKeyV3',
'schema_type': 'Key<Model>'},
'name': 'GBM_grid_1_AutoML_20191007_170602_model_12',
'type': 'Key<Model>',
'URL': '/3/Models/GBM_grid_1_AutoML_20191007_170602_model_12'}},
'training_frame': {'default': None,
'actual': {'__meta': {'schema_version': 3,
'schema_name': 'FrameKeyV3',
'schema_type': 'Key<Frame>'},
'name': 'automl_training_py_13_sid_ac88',
'type': 'Key<Frame>',
'URL': '/3/Frames/automl_training_py_13_sid_ac88'}},
'validation_frame': {'default': None,
'actual': {'__meta': {'schema_version': 3,
'schema_name': 'FrameKeyV3',
'schema_type': 'Key<Frame>'},
'name': 'py_15_sid_ac88',
'type': 'Key<Frame>',
'URL': '/3/Frames/py_15_sid_ac88'}},
'nfolds': {'default': 0, 'actual': 5},
'keep_cross_validation_models': {'default': True, 'actual': False},
'keep_cross_validation_predictions': {'default': False, 'actual': True},
'keep_cross_validation_fold_assignment': {'default': False, 'actual': False}, etc.
# pasting the actual parameters on my model
model = H2OGradientBoostingEstimator(nfolds=5, keep_cross_validation_models=False, keep_cross_validation_predictions= True, score_tree_interval=5, fold_assignment= 'Modulo', ntrees=51, max_depth=12, min_rows=5.0, stopping_metric='deviance', stopping_tolerance = 0.04867923835112355, seed = 47, distribution='gaussian', learn_rate=0.1, sample_rate=0.5, col_sample_rate = 0.7)
这是我必须重复执行多次的过程,因为我正在为一个当前正在运行的项目运行许多自动翻译程序。
h2o上是否已有可用的代码可让您自动执行?还是有人知道更有效的方法?
非常感谢!
答案 0 :(得分:0)
我们还没有方便的功能来从Python的H2O模型中获取非默认参数,但是有一个ticket open。
我的建议是,您只需编写一个函数即可执行此操作(检查所有参数以查看“默认”和“实际”值是否相同,返回非默认值),因此您可以重新使用它在将来的任何型号上。如果您确实编写了函数,请更新您的文章,也许我们可以使用您的代码来完成任务(或随时创建拉取请求)。 :-)