预测时使用的阈值
Threshold used at prediction
根据 H2O 文档,预测时使用的阈值是训练中的最大 F1 阈值。
性能函数,
h2o.performance(model, newdata = test)
实际上 运行 测试集上的预测以计算混淆矩阵。
奇怪的是,我在使用以下方法预测相同的测试集时得到了不同的混淆矩阵:
h2o.predict(object, newdata=test).
这意味着 h2o.performance()
使用的阈值与 h2o.predict()
不同。
我想知道如何根据预测确定阈值。
H2O 对 h2o.performance() 和 h2o.predict() 使用最大 F1 阈值。区别在于它将使用什么数据集来估计最大 F1 阈值。
h2o.predict() 将使用它在训练期间选择的阈值。它根据模型的训练方式使用不同的最大 F1 阈值。基本上:
- 如果您只有训练数据 - 最大 F1 阈值来自训练数据模型。
- 如果训练期间有验证数据 - 最大 F1 阈值来自验证数据模型。
这在documentation and also on 中有解释。根据您在训练期间是否有验证数据,您将看到由 训练或验证 数据集确定的最大 F1 阈值。
h2o.performance() 将采用模型和新数据并计算什么阈值将为 新数据[=29= 提供最高 F1 ].在您的情况下,test 用于计算最大 F1 阈值。
根据 H2O 文档,预测时使用的阈值是训练中的最大 F1 阈值。 性能函数,
h2o.performance(model, newdata = test)
实际上 运行 测试集上的预测以计算混淆矩阵。
奇怪的是,我在使用以下方法预测相同的测试集时得到了不同的混淆矩阵:
h2o.predict(object, newdata=test).
这意味着 h2o.performance()
使用的阈值与 h2o.predict()
不同。
我想知道如何根据预测确定阈值。
H2O 对 h2o.performance() 和 h2o.predict() 使用最大 F1 阈值。区别在于它将使用什么数据集来估计最大 F1 阈值。
h2o.predict() 将使用它在训练期间选择的阈值。它根据模型的训练方式使用不同的最大 F1 阈值。基本上:
- 如果您只有训练数据 - 最大 F1 阈值来自训练数据模型。
- 如果训练期间有验证数据 - 最大 F1 阈值来自验证数据模型。
这在documentation and also on
h2o.performance() 将采用模型和新数据并计算什么阈值将为 新数据[=29= 提供最高 F1 ].在您的情况下,test 用于计算最大 F1 阈值。