{Reship}Precision, Accuracy & Recall

==============================================================

This aritcle came from here

====================================================================

http://blog.sina.com.cn/s/blog_4b59de070100ehl7.html

最近一直在做相关推荐方面的研究与应用工作,召回率与准确率这两个概念偶尔会遇到,

知道意思,但是有时候要很清晰地向同学介绍则有点转不过弯来。
召回率和准确率是数据挖掘中预测、互联网中的搜索引擎等经常涉及的两个概念和指标。
召回率:Recall,又称“查全率”——还是查全率好记,也更能体现其实质意义。
准确率:Precision,又称“精度”、“正确率”。

以检索为例,可以把搜索情况用下图表示:

 
相关

不相关

检索到

A

B

未检索到

C

D

A:检索到的,相关的                (搜到的也想要的)
B:检索到的,但是不相关的          (搜到的但没用的)
C:未检索到的,但却是相关的        (没搜到,然而实际上想要的)
D:未检索到的,也不相关的          (没搜到也没用的)

如果我们希望:被检索到的内容越多越好,这是追求“查全率”,即A/(A+C),越大越好。

如果我们希望:检索到的文档中,真正想要的、也就是相关的越多越好,不相关的越少越好,

这是追求“准确率”,即A/(A+B),越大越好。

“召回率”与“准确率”虽然没有必然的关系(从上面公式中可以看到),在实际应用中,是相互制约的。

要根据实际需求,找到一个平衡点。

往往难以迅速反应的是“召回率”。我想这与字面意思也有关系,从“召回”的字面意思不能直接看到其意义。

“召回”在中文的意思是:把xx调回来。“召回率”对应的英文“recall”,

recall除了有上面说到的“order sth to return”的意思之外,还有“remember”的意思。

Recall:the ability to remember sth. that you have learned or sth. that has happened in the past.

当我们问检索系统某一件事的所有细节时(输入检索query查询词),

Recall指:检索系统能“回忆”起那些事的多少细节,通俗来讲就是“回忆的能力”。

“能回忆起来的细节数” 除以 “系统知道这件事的所有细节”,就是“记忆率”,

也就是recall——召回率。简单的,也可以理解为查全率。

根据自己的知识总结的,定义应该肯定对了,在某些表述方面可能有错误的地方。
假设原始样本中有两类,其中:

1:总共有 P个类别为1的样本,假设类别1为正例。 
2:总共有N个类别为0 的样本,假设类别0为负例。 
经过分类后:
3:有 TP个类别为1 的样本被系统正确判定为类别1,FN 个类别为1 的样本被系统误判定为类别 0,

显然有P=TP+FN; 
4:有 FP 个类别为0 的样本被系统误判断定为类别1,TN 个类别为0 的样本被系统正确判为类别 0,

显然有N=FP+TN; 
 
那么:
精确度(Precision):
P = TP/(TP+FP) ;  反映了被分类器判定的正例中真正的正例样本的比重( 
 
准确率(Accuracy)
A = (TP + TN)/(P+N) = (TP + TN)/(TP + FN + FP + TN);

反映了分类器统对整个样本的判定能力——能将正的判定为正,负的判定为负 
 
召回率(Recall),也称为 True Positive Rate:
R = TP/(TP+FN) = 1 - FN/T;  反映了被正确判定的正例占总的正例的比重 
 
转移性(Specificity,不知道这个翻译对不对,这个指标用的也不多),

也称为 True NegativeRate 
S = TN/(TN + FP) = 1 – FP/N;   明显的这个和召回率是对应的指标,

只是用它在衡量类别0 的判定能力。 
 
F-measure or balanced F-score
F = 2 *  召回率 *  准确率/ (召回率+准确率);这就是传统上通常说的F1 measure,

另外还有一些别的F measure,可以参考下面的链接 
 
上面这些介绍可以参考: 
http://en.wikipedia.org/wiki/Precision_and_recall
同时,也可以看看:http://en.wikipedia.org/wiki/Accuracy_and_precision
 
为什么会有这么多指标呢?
        这是因为模式分类和机器学习的需要。判断一个分类器对所用样本的分类能力或者在不同的应用场合时,

需要有不同的指标。 当总共有个100 个样本(P+N=100)时,假如只有一个正例(P=1),

那么只考虑精确度的话,不需要进行任何模型的训练,直接将所有测试样本判为正例,

那么 A 能达到 99%,非常高了,但这并没有反映出模型真正的能力。另外在统计信号分析中,

对不同类的判断结果的错误的惩罚是不一样的。举例而言,雷达收到100个来袭 导弹的信号,

其中只有 3个是真正的导弹信号,其余 97 个是敌方模拟的导弹信号。假如系统判断 98 个

(97 个模拟信号加一个真正的导弹信号)信号都是模拟信号,那么Accuracy=98%,

很高了,剩下两个是导弹信号,被截掉,这时Recall=2/3=66.67%,

Precision=2/2=100%,Precision也很高。但剩下的那颗导弹就会造成灾害。 
 
因此在统计信号分析中,有另外两个指标来衡量分类器错误判断的后果:
漏警概率(Missing Alarm)
MA = FN/(TP + FN) = 1 – TP/T = 1 - R;  反映有多少个正例被漏判了

(我们这里就是真正的导弹信号被判断为模拟信号,可见MA此时为 33.33%,太高了)

虚警概率(False Alarm)
FA = FP / (TP + FP) = 1 – P;反映被判为正例样本中,有多少个是负例。

统计信号分析中,希望上述的两个错误概率尽量小。而对分类器的总的惩罚旧

是上面两种错误分别加上惩罚因子的和:COST = Cma *MA + Cfa * FA。

不同的场合、需要下,对不同的错误的惩罚也不一样的。像这里,我们自然希望对漏警的惩罚大,

因此它的惩罚因子 Cma 要大些。

个人观点:虽然上述指标之间可以互相转换,但在模式分类中,

一般用 P、R、A 三个指标,不用MA和 FA。而且统计信号分析中,也很少看到用 R 的。

至于为什么名字中间带一个字母X呢? 

查准与召回(Precision & Recall)

就是检索出来的条目中(比如网页)有多少是准确的,Recall就是所有准确的条目有多少被检索出来了。

某些情况下是矛盾的。比如极端情况下,我们只搜出了一个结果,且是准确的,那么P就是100%,但是R就很低;而如果我们把所有结果都返回,那么必然R是100%,但是P很低。

F1  Measure

F
Measure
了,有些地方也叫做F Score,都是一样的。

F = (a^2+1)P*R / a^2P +R

F1 = 2P*R / (P+R)

很容易理解,F1综合了P和R的结果。

{Reship}Precision, Accuracy & Recall

时间: 2024-11-09 00:44:02

{Reship}Precision, Accuracy & Recall的相关文章

机器学习中的 precision、recall、accuracy、F1 Score

1. 四个概念定义:TP.FP.TN.FN 先看四个概念定义: - TP,True Positive - FP,False Positive - TN,True Negative - FN,False Negative 如何理解记忆这四个概念定义呢? 举个简单的二元分类问题 例子: 假设,我们要对某一封邮件做出一个判定,判定这封邮件是垃圾邮件.还是这封邮件不是垃圾邮件? 如果判定是垃圾邮件,那就是做出(Positive)的判定: 如果判定不是垃圾邮件,那就做出(Negative)的判定. Tru

常用的评价指标:accuracy、precision、recall、f1-score、ROC-AUC、PR-AUC

原文地址:https://www.jianshu.com/p/dbbfffd6a5e9 预测(横)实际(纵) + - + tp fn - fp tn 准确率(Accuracy) \[accuracy=\frac{tp+tn}{tp+fp+tn+fn}\] accuracy是最常见也是最基本的评价指标.但是,在二分类且正负样本不平衡的情况下,尤其是对于较少数样本类感兴趣时,accuracy基本无参考价值.如欺诈检测.癌症检测等,100个样例中,99个负例,1个正例.模型将任意样本都分为负例,acc

对accuracy、precision、recall、F1-score、ROC-AUC、PRC-AUC的一些理解

最近做了一些分类模型,所以打算对分类模型常用的评价指标做一些记录,说一下自己的理解.使用何种评价指标,完全取决于应用场景及数据分析人员关注点,不同评价指标之间并没有优劣之分,只是各指标侧重反映的信息不同.为了便于后续的说明,先建立一个二分类的混淆矩阵 ,以下各参数的说明都是针对二元分类                                                              1.准确率  accuracy 准确率:样本中类别预测正确的比例,即 准确率反映模型类别预

ROC曲线、AUC、Precision、Recall、F-measure理解及Python实现

本文首先从整体上介绍ROC曲线.AUC.Precision.Recall以及F-measure,然后介绍上述这些评价指标的有趣特性,最后给出ROC曲线的一个Python实现示例. 一.ROC曲线.AUC.Precision.Recall以及F-measure 二分类问题的预测结果可能正确,也可能不正确.结果正确存在两种可能:原本对的预测为对,原本错的预测为错:结果错误也存在两种可能:原本对的预测为错,原本错的预测为对,如Fig 1左侧所示.其中Positives代表预测是对的,Negatives

一道关于 precision、recall 和 threshold关系的机器学习题

Suppose you have trained a logistic regression classifier which is outputing hθ(x). Currently, you predict 1 if hθ(x)≥threshold, and predict 0 if hθ(x)<threshold, where currently the threshold is set to 0.5. Suppose you increase the threshold to 0.7.

评估指标:ROC,AUC,Precision、Recall、F1-score

一.ROC,AUC ROC(Receiver Operating Characteristic)曲线和AUC常被用来评价一个二值分类器(binary classifier)的优劣 . ROC曲线一般的横轴是FPR,纵轴是FPR.AUC为曲线下面的面积,作为评估指标,AUC值越大,说明模型越好.如下图: 二.Precision.Recall.F1-score Terminology and derivationsfrom a confusion matrix true positive (TP)

ROC,AUC,Precision,Recall,F1的介绍与计算(转)

1. 基本概念 1.1 ROC与AUC ROC曲线和AUC常被用来评价一个二值分类器(binary classifier)的优劣,ROC曲线称为受试者工作特征曲线 (receiver operating characteristic curve,简称ROC曲线),又称为感受性曲线(sensitivity curve),AUC(Area Under Curve)是ROC曲线下的面积.在计算ROC曲线之前,首先要了解一些基本概念.在二元分类模型的预测结果有四种,以判断人是否有病为例: 真阳性(TP)

NLP任务中的基本指标(precision and recall )

>>以下内容参考wikipedia. precision  精确度 recall     召回率 样本数据可看成如下两组: false negative  伪负例 true negative   真负例 被算法挑选出的数据可看成如下两组: true positive   真正例 false positive  伪正例 即: 注:实际任务中经常使用这两个基本指标的加权组合(即,F-measure,也称F-score),至于权值根据不同任务酌情使用.经常使用的而是两者的调和平均数,即:

Precision、Recall、Hamming loss、AP、MAP概念区分

Precision,准确率/查准率.Recall,召回率/查全率.这两个指标分别以两个角度衡量分类系统的准确率. 例如,有一个池塘,里面共有1000条鱼,含100条鲫鱼.机器学习分类系统将这1000条鱼全部分类为"不是鲫鱼",那么准确率也有90%(显然这样的分类系统是失败的),然而查全率为0%,因为没有鲫鱼样本被分对.这个例子显示出一个成功的分类系统必须同时考虑Precision和Recall,尤其是面对一个不平衡分类问题. 下图为混淆矩阵,摘自wiki百科: 根据上图,Precisi