精确回忆图

Precision-recall plot

我想确保我绘制了精确召回曲线。我有以下数据: 回忆 = [0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0] 精度 = [1, 1, 0.8, 0.7, 0.80, 0.65, 0.60, 0.72, 0.60, 0.73, 0.75] interpolated_precision = [1, 1, 0.80, 0.80, 0.80, 0.75, 0.75, 0.75, 0.75, 0.75, 0.75] 和准备好的图表如下所示 precision-recall curve

我不确定它是否正确,因为我看到有摇晃的数字。一个例子在这里: enter image description here 如果有人能确认天气是否错误,我会很高兴。

您通常看到的锯齿状线条/锯齿状图案在来自实际搜索结果的更多数据点(请注意示例图中至少有 20 个左右,而您的正好是 10 个)时更常见。你没有说你的数据点来自哪里。

P-R 数字经常看起来参差不齐的原因是召回率的每次增加通常都伴随着精度的降低,至少是暂时的,因为可能会增加误报。你的图中也是这种情况,但是,你的 "dips" 看起来更小,而且你的精度始终保持很高。

但是,您的图中在精度和插值精度的向下移动中有两个明显的错误,因为您将向下移动绘制为对角线。

为了精确起见,任何向下移动都应该始终是一条垂直线。你不会从你描述的点的简单 x-y 图中得到这个,例如在 excel。这些垂直线有助于 "jagged" 外观。

对于插值精度,图形将始终包含水平或垂直的垂直直线。插值精度的定义本质上要求(参见 https://nlp.stanford.edu/IR-book/html/htmledition/evaluation-of-ranked-retrieval-results-1.html 以了解在任何回忆点的插值精度的正确定义)。

这里的关键是要认识到,您所描述的数据不应作为独立观察值绘制成图表,而应作为以特定方式定义图表其余部分的 P-R 值。