我有一个相当简单的问题,但无法在任何地方找到记录在案的解决方案 .
我目前正在构建一个使用H2O模型的管道,作为流程的一部分,我需要将关于每个训练模型的一些基本信息写入表中 .
假设我有类似的东西:
model = H2ODeepLearningEstimator(...)
model.train(...)
执行此操作后,我想从 model
对象中提取模型类型 . 即,我正在寻找类似的东西:
model.getType()
然后返回一个字符串 "H2ODeepLearningEstimator"
或等效地 "deeplearning"
,其中H2O似乎在内部用作模型类型标识符 . 我还想获得其他细节,例如它是回归模型还是分类模型 . 我没有看到显示此信息的参数 .
如果我运行 model.save_model_details
,例如,我得到:
H2ODeepLearningEstimator : Deep Learning
Model Key: Grid_DeepLearning_py_4_sid_a02a_model_python_1502450758585_2_model_0
ModelMetricsRegression: deeplearning
** Reported on train data. **
MSE: 19.5334650304
RMSE: 4.4196679774
MAE: 1.44489752843
RMSLE: NaN
Mean Residual Deviance: 19.5334650304
ModelMetricsRegression: deeplearning
** Reported on validation data. **
...
...
据推测 model.save_model_details
根据各个参数 Build 了这个摘要 . 我想直接通过 model
对象访问这些(和类似的)参数(对于性能指标,可以通过 model.mse()
, model.mae()
等)
4 回答
h2o.algo为您提供模型类型 . 至于回归或分类,我不知道我的头脑,但它是他们的某个地方 . 查看流程,因为它更容易看到参数名称或模型 . 并滚动直到你看到它可能有它的东西 .
您可以根据培训和/或验证数据获取模型的某些单独模型指标 . 这是代码片段:
注意:因为我没有通过验证框架,这就是为什么我设置valid = False以获得培训指标 . 如果您已通过验证指标,则可以设置valid = True以获取验证指标 .
如果要查看模型对象内部的内容,可以查看json对象,如下所示:
模型类型存储在
model.type()
中 .您可以通过键入
model.
然后在IPython终端中键入Tab键来查看模型的所有方法 . 它们按字母顺序打印,并且正在查找(即使您不知道确切的方法名称) . 你也可以在Python Module documentation中搜索"type",你也可以找到它 .例:
检查型号类型:
(这是关于问题 Headers 的主题,所以我认为值得在这里指出 . 但它有点偏离实际问题的主题,它指的是H2O二进制模型,而不是POJO和MOJO模型 . )
对于H2O POJO和MOJO模型,使用的方法是getModelCategory() .
见http://docs.h2o.ai/h2o/latest-stable/h2o-genmodel/javadoc/hex/genmodel/easy/EasyPredictModelWrapper.html#getModelCategory()