教程>绘制AP和ROC曲线

本教程演示了函数的使用vl_roc,vl设置、和vlpr(vlpr)生成ROC、DET和精度重新调用曲线。

VLFeat支持绘制标准信息检索曲线,如接受者操作特性曲线(ROC)以及重新调用精度(PR)曲线。

考虑一组带有标签的样本标签分数得分.分数通常是输出分类器的得分较高,对应于阳性标签。理想情况下,通过降低分数对数据进行排序首先是所有阳性样本,最后是阴性样本。实践中,分类器并不完美,排名也不理想。本教程中讨论的工具允许评估和可视化排名的质量。

为了便于说明,随机生成一些数据跟随:

numPos=20;numNeg=100;labels=[ones(1,numPos)-ones(1,numNeg)];分数=randn(大小(标签))+标签;

在这种情况下,阴性样本数是积极的方面。如预期的那样,将分数与标签相关联,但不允许将这两个类完美分离。

ROC和DET曲线

为了可视化排名的质量,可以绘制ROC曲线通过使用vl_roc功能:

vl_roc(标签、分数);

这将生成图形

ROC曲线示例。

ROC曲线是由真正值给出的参数曲线比率(TPR)与真实负比率(TNR)。这两个数量可以从vl_roc如下:

[tpr,tnr]=vl_roc(标签,分数);

TPR值tpr(千)是正的百分比秩小于或等于的样本k个(其中等级是通过降低分数来分配的)。tnr(k)相反,排名较高的阴性样本的百分比k个因此,如果将样本分类为等级小于或等于k个积极乐观为负,tpr(千)tnr(k)代表性地表示正/负样本正确分类。

从级别移动k个排名k+1(千分之一),如果等级样本k+1(千分之一)那么是肯定的tpr公司增加;否则tnr公司减少。理想的分类器首先有所有阳性样本,相应的ROC曲线为描述单位正方形两边的一个。

这个曲线下面积(AUC)ROC曲线的整体质量。例如,理想的ROC分类器的AUC等于1。另一个指标是相等错误率(EER),ROC曲线上对应于错误分类为正数或负数的概率相等样品。通过将ROC曲线与单位正方形的对角线。AUC和EER均可计算通过vl_roc:

[tpr,tnr,info]=vl_roc(标签,分数);显示(info.auc);显示(信息);

vl_roc具有一些有用的功能:

  • 标签为零的任何样本在评价。
  • 得分等于的样本-inf公司假设为分类器从未检索到。对于这些,TNR是通常设置为等于零。
  • 额外的阴性和阳性样本-inf公司可以通过以下方式将分数添加到评估中这个num否定词numPositives个选项。例如,vl_roc(标签、分数、“否定数”、1e4)设置数字阴性样本数达到10000。这在评估时很有用大型检索系统,可能需要记录在里面标签得分只有排名靠前的分类器的结果。
  • 可以生成ROC图的不同变体。例如vl_roc(标签、分数、“plot”、“ptn”)交换两轴,根据TPR绘制TNR。因为TPR也是召回(即,在一定范围内回收的阳性样本的百分比秩),这使得该图与精确重调用图.
    ROC图的变体。

ROC曲线在评价典型检索中的局限性制度是他们对假阳性和假阳性同等重视负错误。然而,在一个典型的检索应用程序中大多数样本为阴性,所以假阴性率为对于任何感兴趣的操作点,通常都非常小。因此重点通常放在排名的第一部分,其中少数阳性样本应集中。这可以通过以下方式加以强调使用其中之一精确重调用图或aROC曲线的变体称为检测误差权衡(DET)曲线.

DET曲线绘制FNR(也称为误报警率)针对FPR(也称为未命中率)以对数表示坐标。它可以生成通过vl设置功能呼叫:

DET曲线示例。

精确重调用曲线

ROC和DET曲线均归一化了阳性和阴性样本。相比之下,a重新调用精度(公共关系)曲线直接反映了这一点。可以通过以下方式绘制PR曲线使用vlpr(vlpr)功能:

vl_pr(标签、分数);

这将生成图形

一个精确召回曲线的例子。

PR曲线是由精度和召回。这两个量可以从vl_roc如下:

[召回,精度]=vl_roc(标签,分数);

精度值精度(k)是的比例秩小于或等于的样本k-1号机组那是正值(按降序分配等级分数)。召回(k)而是正的百分比秩小于或等于的样本k-1号机组。对于例如,如果前两个样本是一个阳性和一个阴性,精度(3)是1/2。如果总共有5个阳性样本,然后召回(3)为1/5。

从等级转移k个排名k+1(千分之一),如果等级样本k+1(千分之一)那么是肯定的二者都精度回忆增加;否则精度减少和回忆保持不变。这为PR曲线提供了一个特征锯形。对于一个理想的分类器,它将所有积极的首先采样PR曲线是描述单元两侧的曲线正方形。

与ROC曲线类似曲线下面积(AUC)可用于根据精确度总结排名的质量和回忆。这可以通过以下方式获得信息.auc通过

[rc,pr,info]=vl_pr(标签,分数);显示(info.auc);显示(info.ap);显示(信息.ap_interp_11);

AUC是通过精度的梯形插值获得的。另一种通常几乎等效的指标是平均精度(AP),返回为信息.ap。这是每次新的阳性样本回忆。如果精度内插为常数段,是TREC最常用的定义经常。最后11点插值平均精度,返回为信息.ap_interp_11这是一个较旧的TREC定义,取11个精度的平均值值,作为大于0.0, 0.1, ..., 1.0中。例如,在PASCAL VOC挑战直到2008年版。