精确率(Precision),又称为“查准率”。
召回率(Recall),又称为“查全率”。
召回率和精确率是广泛用于信息检索和统计学分类领域的两个度量值,用来评价结果的质量。其中召回率是是检索出的相关文档数和文档库中所有的相关文档数的比率,衡量的是检索系统的查全率。精确率是检索出的相关文档数与检索出的文档总数的比率,衡量的是检索系统的查准率。如以下公式所示:
召回率(Recall) = 系统检索到的相关文件 / 系统所有相关的文件总数
精确率(Precision) = 系统检索到的相关文件 / 系统所有检索到的文件总数
下面这个例子可以有助于对精确率和召回率两个概念的理解:
在一个数据库中有1000个文档,其中有100个是与NBA相关的,系统检索出75个文档,其中,只有50个是与NBA相关,此时:
精确率 = 50 / 75 = 67%
召回率 = 50 / 100 = 50%
上面的检索为第一次检索,同样的环境下改变检索技术后进行第二次检索,系统检索出150个文档,其中,90个是与NBA相关的,此时:
精确率 = 90 / 150 = 60%
召回率 = 90 / 100 = 90%
我们发现,精确率和召回率是互相影响的,理想情况下肯定是做到两者都高,但是一般情况下准确率高、召回率就低,召回率低、准确率高,当然如果两者都低,那是什么地方出问题了。
![RP曲线图](https://img-blog.csdn.net/20180504164116214?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FpdTkzMTExMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
F度量(F-measure),结合精确率和召回率。
基于上文,不难得出准确率与召回率两者基本存在一种“互补”的关系,简单描述就有点像天平的两端,你大我小,或者你小我大(这个比喻可能不是非常严谨)。所以在具体的应用当中,我们应该以哪一个指标为主呢?有没有一个综合的指标涵盖了这两个指标呢?此时,就需要引出F度量。F值的计算公式如下:
F 1 = 2 ∗ P ∗ R / ( P + R ) F1 = 2 * P * R / (P + R) F1=2∗P∗R/(P+R)
结合上文的例子,利用上述公式计算得到,第一次检索的F1为57%,第二次检索的F1为72%,显然改变技术后的检索效果优于改变前。
Map(mean Average Precision)
mAP是为解决P,R,F-measure的单点值局限性的。为了得到 一个能够反映全局性能的指标,可以看考察下图,其中两条曲线(方块点与圆点)分布对应了两个检索系统的精确率-召回率曲线。可以看出,虽然两个系统的性能曲线有所交叠但是以圆点标示的系统的性能在绝大多数情况下要远好于用方块标示的系统。从中我们可以 发现一点,如果一个系统的性能较好,其曲线应当尽可能的向上突出。更加具体的,曲线与坐标轴之间的面积应当越大。最理想的系统, 其包含的面积应当是1,而所有系统的包含的面积都应当大于0。
![这里写图片描述](https://img-blog.csdn.net/20180504165710597?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FpdTkzMTExMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
这就是用以评价信息检索系统的最常用性能指标,平均准确率mAP其规范的定义如下:(其中P,R分别为精确率与召回率)。
![这里写图片描述](https://img-blog.csdn.net/20180504165741355?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FpdTkzMTExMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
ROC(Receiver Operating Characteristic)
AUC(Area Under roc Curve)
ROC和AUC是评价分类器的指标,上面第一个图的ABCD仍然使用,只是需要稍微变换。
![这里写图片描述](https://img-blog.csdn.net/20180504170257371?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FpdTkzMTExMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70) 回到ROC上来,ROC的全名叫做Receiver Operating Characteristic。
ROC关注两个指标
True Positive Rate ( TPR ) = TP / [ TP + FN] ,TPR代表能将正例分对的概率
False Positive Rate( FPR ) = FP / [ FP + TN] ,FPR代表将负例错分为正例的概率
在ROC 空间中,每个点的横坐标是FPR,纵坐标是TPR,这也就描绘了分类器在TP(真正的正例)和FP(错误的正例)间的trade-off。ROC的主要分析工具是一个画在ROC空间的曲线——ROC curve。我们知道,对于二值分类问题,实例的值往往是连续值,我们通过设定一个阈值,将实例分类到正类或者负类(比如大于阈值划分为正类)。因此我们可以变化阈值,根据不同的阈值进行分类,根据分类结果计算得到ROC空间中相应的点,连接这些点就形成ROC curve。ROC curve经过(0,0)(1,1),实际上(0, 0)和(1, 1)连线形成的ROC curve实际上代表的是一个随机分类器。一般情况下,这个曲线都应该处于(0, 0)和(1, 1)连线的上方。如图所示。
![这里写图片描述](https://img-blog.csdn.net/201805041703354?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FpdTkzMTExMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
用ROC curve来表示分类器的performance很直观好用。可是,人们总是希望能有一个数值来标志分类器的好坏。
于是Area Under roc Curve(AUC)就出现了。顾名思义,AUC的值就是处于ROC curve下方的那部分面积的大小。通常,AUC的值介于0.5到1.0之间,较大的AUC代表了较好的Performance。
AUC计算工具:
http://mark.goadrich.com/programs/AUC/