我了解精确率和召回率的概念,但很难理解使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。