如何在 Python 中保存 H2O model_performance 函数的阈值?

how to save the threshold from H2O model_performance function in Python?

我是 运行 H2O in Python 并为二进制目标变量(1 vs 0)构建 GBM 模型。该模型表现良好,我可以在输出中看到阈值。但是我想把阈值保存到一个变量中(我们可以称之为cut_point)。所以当我对一个新的数据集进行评分时,我可以使用阈值来定义 1 或 0。以前有人这样做过吗?

您可以使用find_threshold_by_max_metric

model.find_threshold_by_max_metric('f1', train=True, valid=False, xval=False)

或者,要查找 thresholds that maximize F1-scores,可以使用:

model.F1(train=True, valid=True, xval=False)

上面一行的示例输出:

{u'train': [[0.3869697386893616, 0.7451099672437997]], u'valid': [[0.35417599264806404, 0.7228980805623143]]}

使每个数据集的 F1 分数最大化的阈值是每个键中列表的第一个值(索引 0)。第二个值(索引 1)是每个数据集的 F1 分数的最大值。要索引阈值,比如可以使用的有效框架:

values = model.F1(train=True, valid=True, xval=False)
values.get('valid')[0]

此方法也适用于以下指标: