【问题标题】:how to save the threshold from H2O model_performance function in Python?如何从 Python 中的 H2O model_performance 函数中保存阈值?
【发布时间】:2020-07-08 19:34:33
【问题描述】:

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

【问题讨论】:

    标签: python h2o


    【解决方案1】:

    您可以使用find_threshold_by_max_metric

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

    【讨论】:

    • 谢谢!当我在测试数据集上应用 model_performance 时,从输出中我确实看到了阈值。有没有办法使用测试数据集找到阈值?
    【解决方案2】:

    或者,要查找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-score 最大化的阈值是每个键中列表的第一个值(索引 0)。第二个值(索引 1)是每个数据集的 F1 分数的最大值。要索引一个阈值,比如说可以使用的有效性框架:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-09-20
      • 2018-09-04
      • 2016-12-31
      • 2019-02-17
      • 1970-01-01
      • 2017-12-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多