当我只有一个 PR 值时,如何形成 Precision-Recall 曲线?

机器算法验证 数据挖掘 matlab 精确召回 曲线 计算机视觉
2022-03-15 06:15:04

我有一个数据挖掘任务,我在其中制作基于内容的图像检索系统。我有 5 种动物的 20 张图片。所以总共有100张图片。

我的系统将 10 个最相关的图像返回到输入图像。现在我需要使用 Precision-Recall 曲线来评估我的系统的性能。但是,我不理解 Precision-Recall 曲线的概念。假设我的系统为大猩猩图像返回 10 张图像,但其中只有 4 张是大猩猩。返回的其他 6 张图像是其他动物的。因此,

  • 精度是4/10 = 0.4(返回的相关项)/(全部返回)
  • 召回是4/20 = 0.2(相关返回)/(所有相关)

所以我只有一个点,<0.2,0.4>而不是曲线。我如何有一条曲线(即一组点)?我是否应该更改返回的图像数量(在我的情况下固定为 10)?

1个回答

生成 PR 曲线类似于生成 ROC 曲线。要绘制这样的图,您需要对测试集进行完整排名。要进行此排名,您需要一个输出决策值而不是二元答案的分类器。决策值是对预测的置信度的度量,我们可以使用它来对所有测试实例进行排名。例如,逻辑回归和 SVM 的决策值分别是到分离超平面的概率和(有符号)距离。

如果您处理决策值,您将在所述决策值上定义一组阈值。这些阈值是分类器的不同设置:例如,您可以控制保守程度。对于逻辑回归,默认阈值为,但您可以覆盖的整个范围。通常,阈值被选择为您的模型为测试集产生的唯一决策值。f(x)=0.5(0,1)

在每次选择阈值时,您的模型都会产生不同的预测(例如,不同数量的正面和负面预测)。因此,您将获得一组具有不同精度的元组,并在每个阈值处进行召回,例如一组元组PR 曲线是基于对绘制的。(Ti,Pi,Ri)(Pi,Ri)

如果我正确理解了您的评论,您计算的总相似度得分可以用作决策值。