如何自动使用h2o automl非获奖模型的所有模型参数?

How to automatically employ all the model parameters of non-winning models of h2o automl?

我对 h2o 还很陌生,正在努力了解它。我目前正在使用 automl 和我排行榜上的模型 我决定使用第三个模型而不是领导者模型

我使用下面的代码执行此操作,然后获取该特定模型的参数。然后,我手动检查与默认参数不同的实际参数,并使用它们来定义我的模型。

#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 上是否已有代码可以让您自动执行此操作?或者谁知道更有效的方法?

提前致谢!

在 Python 中,我们还没有从 H2O 模型中获取非默认参数的便利函数,但有一个 ticket open 可以实现。

我的建议是你只需要编写一个函数来执行此操作(检查所有参数以查看 "default" 和 "actual" 值是否相同,return 非默认值的),因此您将来可以在任何模型上重复使用它。如果您确实编写了函数,请更新您的 post,也许我们可以使用您的代码来完成任务(或者随时创建拉取请求)。 :-)