什么是精确率-召回率曲线中的阈值?

我了解精确率和召回率的概念,但很难理解使P-R曲线成为可能的“阈值”这一概念。

假设我有一个模型来预测患者癌症复发的可能性(是或否),使用一些不错的分类算法在相关特征上进行预测。我将数据分为训练集和测试集。假设我用训练数据训练了模型,并用测试数据得到了我的精确率和召回率指标。

但是,我现在如何绘制P-R曲线呢?基于什么呢?我只有两个值,一个精确率和一个召回率。我读到是“阈值”使你能够获得多个精确率-召回率对。但那个阈值是什么?我还是个初学者,无法理解阈值的概念。

我在很多分类模型比较中看到过这种情况,比如下面的例子。但他们是如何得到那么多对的呢?

使用精确率-召回率曲线进行模型比较


回答:

ROC曲线:

  • x轴:假阳性率 FPR = FP /(FP + TN) = FP / N
  • y轴:真阳性率 TPR = 召回率 = TP /(TP + FN) = TP / P

精确率-召回率曲线:

  • x轴:召回率 = TP / (TP + FN) = TP / P = TPR
  • y轴:精确率 = TP / (TP + FP) = TP / PP

你的癌症检测例子是一个二分类问题。你的预测基于一个概率,即(没有)癌症的概率。

一般来说,如果P(A) > 0.5(你的阈值),则一个实例会被分类为A。对于这个值,你会根据真阳性、真阴性、假阳性和假阴性得到你的召回率-精确率对。

现在,当你改变0.5的阈值时,你会得到不同的结果(不同的对)。你甚至可以在P(A) > 0.3时将患者分类为“有癌症”。这会降低精确率并增加召回率。你宁愿告诉某人他有癌症,即使他没有,以确保有癌症的患者能够得到他们需要的治疗。这代表了TPR与FPR或精确率与召回率或敏感性与特异性之间的直观权衡。

让我们添加这些术语,因为你在生物统计学中更常见到它们。

  • 敏感性 = TP / P = 召回率 = TPR
  • 特异性 = TN / N = (1 – FPR)

ROC曲线和精确率-召回率曲线可视化了你的分类器的所有可能阈值。

如果你仅用准确率作为质量度量标准不合适时,你应该考虑这些指标。将所有患者分类为“没有癌症”会给你最高的准确率,但你的ROC和精确率-召回率曲线的值将是1和0。

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注