H2O - 从 python 代码中获取交叉验证结果

H2O - getting cross-validation results from python code

我正在尝试使用 python 访问某些 H2O 模型的结果。

我特别想要交叉验证结果。我可以使用下面的代码获得 r2 和 mae。理想情况下,我也喜欢标准偏差分数。

我可以使用 .cross_validation_metrics_summary 查看数据,但无法弄清楚如何 return 具体值(例如交叉验证 sd)

import h2o 

h2o.init()

def get_model_det(current_model):
    r2_score = current_model.r2(xval = "TRUE")
    mae_score = current_model.mae(xval = "True")
    varimp = current_model.varimp()
    print(current_model.cross_validation_metrics_summary)
    print(r2_score, mae_score)

current_model = h2o.get_model("XGBoost_2_AutoML_20200513_153924")
get_model_det(current_model)

如果你想从cross_validation_metrics_summary中调出特定的值,你可以使用以下方法:

current_model.cross_validation_metrics_summary().as_data_frame()[['', 'sd']]

最后一部分[['', 'sd']]会调用感兴趣的两列。 '' 是每个分数的名称(例如准确度、auc),'sd' 会给出相应的标准差。

输出一个table:

+-------+----------+--------------+
| index |    ''    |      sd      |
+-------+----------+--------------+
| 0     | accuracy | 0.0048520584 |
| 1     | auc      | 0.011593064  |
| 2     | aucpr    | 0.011920754  |
| ...   | ...      | ...          |
+-------+----------+--------------+