精确率、召回率、F1 值、ROC、AUC 各自的优缺点是什么?

作者:竹间智能 Emotibot
链接:https://www.zhihu.com/question/30643044/answer/161955532
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

精确率(Precision)是指在所有系统判定的“真”的样本中,确实是真的的占比,就是TP/(TP+FP)。

召回率(Recall)是指在所有确实为真的样本中,被判为的“真”的占比,就是TP/(TP+FN)。

FPR(False Positive Rate),又被称为“Probability of False Alarm”,就是所有确实为“假”的样本中,被误判真的样本,或者FP/(FP+TN)

在不谈具体任务的前提下谈指标就是耍流氓。

当然在谈具体任务之前,我们可以简单解释一下这些指标的概念。

假定有一个二分类问题,比如判定商品是否是假货。给系统一个样本,系统将会判断该样本为“真”(Predicted positive),或“假”(Predicted Negative)。但是当然,系统的判断与真实判断(actual positive/negative)是有误差的,将原本是真的判为真,就是TP(True Positive),原本真的判为假,就是FN(False Negative),原本假的判为真,就是FP(False Positive),原本假的判为假,就是TN(True Negative)。

精确率(Precision)是指在所有系统判定的“真”的样本中,确实是真的的占比,就是TP/(TP+FP)。

召回率(Recall)是指在所有确实为真的样本中,被判为的“真”的占比,就是TP/(TP+FN)。

TPR(True Positive Rate)的定义,跟Recall一样。

FPR(False Positive Rate),又被称为“Probability of False Alarm”,就是所有确实为“假”的样本中,被误判真的样本,或者FP/(FP+TN)

F1值是为了综合考量精确率和召回率而设计的一个指标,一般公式为取P和R的harmonic mean:2*Precision*Recall/(Precision+Recall)。

ROC=Receiver Operating Characteristic,是TPR vs FPR的曲线;与之对应的是Precision-Recall Curve,展示的是Precision vs Recall的曲线。

显而易见的,当TN=FN=0的时候,也就是我们将100%的样本都认为是“真”的,TPR=FPR=1:这就是我们“完全放水”的情形;反之,当TP=FP=0的时候,也就是我们将100%的样本都认为是“假”的时候,TPR=FPR=0,这就是“宁可错杀一万,不可放过一个”的情形。

我们在下图观察几个点。首先,FPR=0, TPR=1的那个点,可以推测FN=0, FP=0:一个错误都没有,所以是Perfect Classification。

中间这条红线,我们观察TPR=FPR,所以TP(FP+TN)=FP(TP+FN),所以TP/FN = FP/TN:换言之,无论样本是真是假,我们将它们判为“真”或“假”的概率都相当,或者说,我们的猜测是完全随机的。

在红线上方,偏Perfect Classification的区域,我们认为是优于随机猜测。因为,在红线上的任意一点垂直向上的点,都有同样的FPR,但总是得到更高的TPR:在错误不变的情况下,我们的Recall变高了。反之,在红线下方的点,都认为是劣于随机猜测。

那么聪明的你一定想得到,ROC曲线下方所包围的面积越大,那么分类器的性能越优越。这个曲线下的面积,就叫做AUC(Area Under the Curve)。因为整个正方形的面积为1,所以0<=AUC<=1。

同理,Precision与Recall的关系也可以画成一条曲线,就是上面的PR curve,其中,Precision随着Recall的提高而降低。

好了,那么回答题主的问题:这些指标的优缺点各自在哪里?

先看二分类问题指标的好坏主要取决于分类器的目标。比方说,电子邮件的垃圾过滤,你是希望它更全面(查出所有的垃圾,但是会有大量有用信息也被判为垃圾)呢,还是希望它尽量精准(不要老是将有用的邮件判为垃圾)呢?在这个例子里,显然,我们认为False Positive的伤害要大于False Negative:重要邮件要是被判成垃圾所造成的损失,远大于收件箱里还有一部分的垃圾邮件——前者可能会让你错过重要的工作,后者仅仅是让你在阅读的时候皱皱眉头。在这种情况下,我们会认为Precision的指标会比较重要,或者反应在ROC图上,FPR尽量的小——自然,在保证FPR的基础上,Recall依然还是重要的——毕竟用户购买的是垃圾过滤,如果只是过滤了1条垃圾但是Precision=100%,这样的东西看起来也没什么用——那么综合起来,我们也可以通过ROC的AUC来进行比较,面积较大的代表同样的FPR下面,recall比较高。

但是,ROC的曲线——如上面几位已经说过——有数据均衡的问题。在数据极度不平衡的情况下,譬如说1万封邮件中只有1封垃圾邮件,那么如果我挑出10封,50封,100,。。封垃圾邮件(假设全部包含真正的那封垃圾邮件),Recall都是100%,但是FPR分别是9/9999, 49/9999, 99/9999(数据都比较好看:FPR越低越好),而Precision却只有1/10,1/50, 1/100 (数据很差:Precision越高越好)。所以在数据非常不均衡的情况下,看ROC的AUC可能是看不出太多好坏的,而PR curve就要敏感的多。(不过真实世界中,垃圾邮件也许与你的有用的邮件一样多——甚至比有用的还更多。。。)

其次是搜索问题。搜索问题其实是一个排序问题,但我们往往会定义[email protected] K这样的指标,即正确的答案有没有被排在Top K中,如果是的话,就相当于判断为“真”,反之则为“否”。这样搜索问题就转化为了一个二分类问题,唯一的问题是,这是一个典型的数据不均衡的case。很显然,所有的候选集的数量是非常巨大的,但是K的数量不会很大(比如Top 10, Top 20)。

所以,在这个问题中,我们会主要看Precision-Recall curve。

更重要的是,一般而言,人们看搜索结果都不会太有耐心,所以希望Top K中的有用信息尽量多,换言之,[email protected] K的指标,是最核心的。

我们再考虑一个任务,机器阅读理解(Machine Reading Comprehension, MRC),机器阅读一篇文章以后人类向它提问,由机器回答。这时候,所谓的Precision,是指机器回答的答案中,正确的比例。但是在这个任务中,Recall同样重要:机器也有可能回答不出来问题,但是“回答不出”,其实和“回答错误”是没有差别的。在这样的任务中,我们希望能够公平的Balance Precision和Recall的一个数字,所以我们认为F1 Score是一个好的衡量指标。

然而如果我们的问题是多分类的问题,实际上这些指标就不适合了,我们需要看的是Confusion Matri:

在上图中,对于某一类别(比如猫)而言,错误会分为被误判成狗或误判成兔子两种情形,共记9种不同的类别,其中三类(对角线上的元素)是分类正确的。显然,仅仅用TP/TN/FP/FN这四类已经不足以分析这样的问题了。

当然,指标也不仅限题主所列这几种,这里就不展开了。需要提一下的是,很多时候,能否有效的分析实验结果,比单纯算法上几个点的差异,对结果的影响来的大得多。在没有指定具体情况的时候谈指标,是没有任何意义的。

Reference:

The Relationship Between Precision-Recall and ROC Curves, http://pages.cs.wisc.edu/~jdavis/davisgoadrichcamera2.pdf

Differences between Receiver Operating Characteristic AUC (ROC AUC) and Precision Recall AUC (PR AUC) http://www.chioka.in/differences-between-roc-auc-and-pr-auc/

时间: 2024-08-05 17:22:42

精确率、召回率、F1 值、ROC、AUC 各自的优缺点是什么?的相关文章

混淆矩阵、准确率、精确率/查准率、召回率/查全率、F1值、ROC曲线的AUC值

准确率.精确率(查准率).召回率(查全率).F1值.ROC曲线的AUC值,都可以作为评价一个机器学习模型好坏的指标(evaluation metrics),而这些评价指标直接或间接都与混淆矩阵有关,前四者可以从混淆矩阵中直接计算得到,AUC值则要通过ROC曲线进行计算,而ROC曲线的横纵坐标又和混淆矩阵联系密切,所以在了解这些评价指标之前,先知道什么是混淆矩阵很有必要,也方便记忆. 1.混淆矩阵 对于一个二分类问题,我们可以得到如表 1所示的的混淆矩阵(confusion matrix): 表

准确率,召回率,F值,ROC,AUC

度量表 1.准确率 (presion) p=TPTP+FP 理解为你预测对的正例数占你预测正例总量的比率,假设实际有90个正例,10个负例,你预测80(75+,5-)个正例,20(15+,5-)个负例 实际上你的准确率为75/80=0.9375,但这个评价指标有什么问题呢,想想就知道,这里你并没有用到实际的正例数,那么仅仅靠你猜中的正例作为分母,你并不知道实际的正例有多少,你看召回率为75/90=0.83,就是说你的猜测局限于预测范围 2.召回率 (recall)r=TPTP+FN 理解为你预测

一文让你彻底理解准确率,精准率,召回率,真正率,假正率,ROC/AUC

参考资料:https://zhuanlan.zhihu.com/p/46714763 ROC/AUC作为机器学习的评估指标非常重要,也是面试中经常出现的问题(80%都会问到).其实,理解它并不是非常难,但是好多朋友都遇到了一个相同的问题,那就是:每次看书的时候都很明白,但回过头就忘了,经常容易将概念弄混.还有的朋友面试之前背下来了,但是一紧张大脑一片空白全忘了,导致回答的很差. 我在之前的面试过程中也遇到过类似的问题,我的面试经验是:一般笔试题遇到选择题基本都会考这个率,那个率,或者给一个场景让

分类算法-2.精准率和召回率曲线

精准率和召回率是两个不同的评价指标,很多时候它们之间存在着差异,具体在使用的时候如何解读精准率和召回率,应该视具体使用场景而定 有些场景,人们可能更注重精准率,如股票预测系统,我们定义股票升为1,股票降为0,我们更关心的是未来升的股票的比例,而在另外一些场景中,人们更加注重召回率,如癌症预测系统,定义健康为1,患病为0,我们更关心癌症患者检查的遗漏情况. F1 Score F1 Score 兼顾精准率和召回率,它是两者的调和平均值 \[\frac{1}{F1} = \frac{1}{2}(\fr

[搜索]一种改进的召回率准确率公式计算方式

 在信息检索系统中,召回率和准确率的定义为: 召回率:(Recall Ratio,简称R)是衡量信息检索系统在实施某一检索作业时检出相关文献能力的一种测度指标,其计算方法为:Recall=检出的相关文献量/检索系统中的相关文献总量. 准确率:(Precision Ratio,简称P)是衡量系统在实施某一检索作业时检索精准度的一个测度指标,其计算方法为: Precision=检出的相关文献量/检出的文献总量. 比如一个系统中有100篇文档,对于某一次查询,有10篇相关的文档,在这次检索中,共检

机器学习算法中的评价指标(准确率、召回率、F值、ROC、AUC等)

参考链接:https://www.cnblogs.com/Zhi-Z/p/8728168.html 具体更详细的可以查阅周志华的西瓜书第二章,写的非常详细~ 一.机器学习性能评估指标 1.准确率(Accurary) 准确率是我们最常见的评价指标,而且很容易理解,就是被分对的样本数除以所有的样本数,通常来说,正确率越高,分类器越好. 准确率确实是一个很好很直观的评价指标,但是有时候准确率高并不能代表一个算法就好.比如某个地区某天地震的预测,假设我们有一堆的特征作为地震分类的属性,类别只有两个:0:

精确率与召回率,RoC曲线与PR曲线

在机器学习的算法评估中,尤其是分类算法评估中,我们经常听到精确率(precision)与召回率(recall),RoC曲线与PR曲线这些概念,那这些概念到底有什么用处呢? 首先,我们需要搞清楚几个拗口的概念: 1. TP, FP, TN, FN True Positives,TP:预测为正样本,实际也为正样本的特征数 False Positives,FP:预测为正样本,实际为负样本的特征数 True Negatives,TN:预测为负样本,实际也为负样本的特征数 False Negatives,

准确率(Accuracy), 精确率(Precision), 召回率(Recall)和F1-Measure

yu Code 15 Comments 机器学习(ML),自然语言处理(NLP),信息检索(IR)等领域,评估(Evaluation)是一个必要的 工作,而其评价指标往往有如下几点:准确率(Accuracy),精确率(Precision),召回率(Recall)和F1-Measure.(注: 相对来说,IR 的 ground truth 很多时候是一个 Ordered List, 而不是一个 Bool 类型的 Unordered Collection,在都找到的情况下,排在第三名还是第四名损失并

准确率、精确轨、召回率等

作者:邓小乔链接:https://www.zhihu.com/question/30643044/answer/224360465 正好最近刚做了个项目是关于imbalanced data的,又深入研究了一把各种evaluation metric,在这儿分享一下. 为了方便,以下专业名词都用英文替代了.本人留学狗,脑子不好使容易蹦英文单词,不喜勿喷哈. 准确率 - accuracy 精确率 - precision 召回率 - recall F1值 - F1-score ROC曲线下面积 - RO