【问题标题】:Threshold used at prediction预测时使用的阈值
【发布时间】:2020-04-04 19:06:09
【问题描述】:

根据 H2O 文档,预测时使用的阈值是来自 train 的最大 F1 阈值。 性能函数,

h2o.performance(model, newdata = test)

实际在测试集上运行预测以计算混淆矩阵。

奇怪的是,我在使用以下方法预测相同的测试集时得到了不同的混淆矩阵:

h2o.predict(object, newdata=test).

这意味着h2o.performance() 使用的阈值与h2o.predict() 不同。 我想知道如何在预测时指定阈值。

【问题讨论】:

    标签: r h2o


    【解决方案1】:

    H2O 正在为 h2o.performance() 和 h2o.predict() 使用最大 F1 阈值。区别在于使用什么数据集来估计最大 F1 阈值。


    h2o.predict() 将使用它在训练期间选择的阈值。它根据模型的训练方式使用不同的最大 F1 阈值。基本上:

    • 如果您只有训练数据 - 最大 F1 阈值来自训练数据模型。
    • 如果训练期间有验证数据 - 最大 F1 阈值来自验证数据模型。

    这在documentation 和stackoverflow 中有解释。根据您在训练期间是否有验证数据,您将看到由您的训练或验证数据集确定的最大 F1 阈值。

    h2o.performance() 将获取模型和新数据,并计算出哪个阈值将为 新数据 提供最高 F1。在您的情况下,test 用于计算最大 F1 阈值。

    【讨论】:

      猜你喜欢
      • 2019-09-02
      • 1970-01-01
      • 2020-10-07
      • 2018-03-04
      • 2020-09-17
      • 2014-06-08
      • 1970-01-01
      • 2019-03-18
      • 2022-06-14
      相关资源
      最近更新 更多