查全率(Recall),查准率(Precision),灵敏性(Sensitivity),特异性(Specificity),F1,PR曲线,ROC,AUC的应用场景

之前介绍了这么多分类模型的性能评价指标(分类模型的性能评价指标(Classification Model Performance Evaluation Metric)),那么到底应该选择哪些指标来评估自己的模型呢?答案是应根据应用场景进行选择。

查全率(Recall):recall是相对真实的情况而言的:假设测试集里面有100个正类,如果模型预测出其中40个是正类,那模型的recall就是40%。查全率也称为召回率,等价于灵敏性(Sensitivity)真正率(True Positive Rate,TPR)

查全率的应用场景:需要尽可能地把所需的类别检测出来,而不在乎结果是否准确。比如对于地震的预测,我们希望每次地震都能被预测出来,这个时候可以牺牲precision。假如一共发生了10次地震,我们情愿发出1000次警报,这样能把这10次地震都涵盖进去(此时recall是100%,precision是1%),也不要发出100次警报,其中有8次地震给预测到了,但漏了2次(此时recall是80%,precision是8%)。

查准率(Precision):precision是相对模型的预测结果而言的:假设模型一共预测出了100个正类,其中80个是正确的,那么precision就是80%。

查准率的应用场景:需要尽可能地把所需的类别检测准确,而不在乎这些类别是否都被检测出来。比如对于罪犯的预测,我们希望预测结果是非常准确的,即使有时候放过了一些真正的罪犯,也不能错怪一个好人。

总结一下查全率和查准率的区别:

1. recall和precision是相互矛盾的。如果想要更高的recall,那么就要让模型的预测能覆盖到更多的样本,但是这样模型就更有可能犯错,也就是说precision会比较低。如果模型很保守,只能检测出它很确定的样本,那么其precision会很高,但是recall会相对低。

2. recall(TPR)的分母是样本中正类的个数,因此样本一旦确定,其分母即为定值,也就是说recall的变化随分子增加而单调递增;precision的分母是样本中预测为正类的个数,其会随着分类阈值的变化而变化,因此Precision的变化受TP和FP的综合影响,不单调,变化情况不可预测。



F1:F1 score是对查准率和查全率取平均,但是这里不是取算数平均,而是取调和平均。为什么?因为调和平均值更接近较小值,这样查准率或查全率中哪个值较小,调和平均值就更接近这个值,这样的测量指标更严格。

 或  

F1的应用场景:在precision和recall两者要求同样高的情况下,可以用F1来衡量。



查全率和查准率是最常用的两个分类指标,除此之外人们还会用到以下一些指标:

(注:查全率在医学上经常被称为真阳性率(True Positive Rate,TPR)。)

假阳性率(False Positive Rate,FPR):在医学上又称误诊率,等于 1 - 特异性(Specificity)

假阴性率(False Negative Rate,FNR):在医学上又称漏诊率,等于 1 - 灵敏性(Sensitivity)



在现实中,人们往往对查全率和查准率都有要求,但是会根据应用场景偏向某一边。比如做疾病检测,我们希望尽可能地把疾病检测出来,但同时也不想检测结果的准确率太低,因为这样会造成恐慌和不必要的医疗支出(偏向recall)。又比如对于垃圾邮件检测(Spam Detection),我们希望检测出的垃圾邮件肯定是垃圾邮件,而不希望把正常邮件邮件归为垃圾邮件,因为这样有可能会给客户造成很大的损失,但是相对地,如果我们经常把垃圾邮件归为正常邮件,虽然不会造成很大损失,但是会影响用户体验(偏向precision)。再比如如果是做搜索,搜出来的网页都和关键词相关才是好的搜索引擎,在这种情况下,我们希望precision高一些(偏向precision)。这时就要用到PR曲线。

PR曲线:x轴为查全率,y轴为查准率。

PR曲线的应用场景:需要根据需求找到对应的precision和recall值。如果偏向precison,那就是在保证recall的情况下提升precision;如果偏向recall,那就是在保证precision的情况下提升recall。比如对于欺诈检测(Fraud Detection),如果要求预测出的潜在欺诈人群尽可能准确,那么就要提高precision;而如果要尽可能多地预测出潜在的欺诈人群,那么就是要提高recall。一般来说,提高二分类模型的分类阈值就能提高precision,降低分类阈值就能提高 recall,这时便可观察PR 曲线,根据自己的需要,找到最优的分类阈值(threshold)。



ROC曲线和AUC:ROC曲线的x轴为FPR,y轴为TPR。AUC值是一个概率值,反映的是分类器对样本的排序能力,即从所有正例中随机选取一个样本A,再从所有负例中随机选取一个样本B,分类器将A判为正例的概率比将B判为正例的概率大的可能性。AUC越大,说明排序能力越好,即分类器将越多的正例排在负例之前。

对于一个给定的数据集,ROC空间和PR空间存在一一对应的关系,因为二者的混淆矩阵完全一致的。我们可以将ROC曲线转化为PR曲线,反之亦然。那么既然已经有这么多评价指标了,为什么还要使用ROC曲线和AUC呢?这是因为ROC曲线有一个很好的特性:当测试集中正负样本的比例发生变化的时候,ROC曲线能够保持不变。这样,当测试数据中正负样本的分布随时间而变化时,我们就可以通过ROC曲线来比较模型的性能。

ROC曲线和AUC的应用场景:在二分类模型中正例和负例同等重要的时候,或者当测试数据中正负样本的分布随时间而变化时,需要比较模型的整体性能,适合用ROC曲线评价。

一般来说,模型的ROC-AUC值越大,模型的分类效果越好。不过如果两个模型AUC值差不多,并不代表这两个模型的效果相同。下面两幅图中两条ROC曲线相交于一点,AUC值几乎一样:当需要高Sensitivity时,模型A(细线)比B好;当需要高Speciticity时,模型B(粗线)比A好。

总结一下PR曲线和ROC曲线&AUC的区别:

1. PR曲线在正负样本比例比较悬殊时更能反映分类器的性能。当正负样本差距不大的情况下,ROC和PR的趋势是差不多的,但是当负样本很多的时候,两者就截然不同了,ROC效果依然看似很好,但是PR上反映效果一般。这就说明对于类别不平衡问题,ROC曲线通常会给出一个过于乐观的效果估计,此时还是用PR曲线更好。

2. ROC曲线由于兼顾正例与负例,适用于评估分类器的整体性能(通常是计算AUC,表示模型的排序性能);PR曲线则完全聚焦于正例,因此如果我们主要关心的是正例,那么用PR曲线比较好。

3. ROC曲线不会随着类别分布的改变而改变。然而,这一特性在一定程度上也是其缺点。因此需要根据不用的场景进行选择:比如对于欺诈检测,每个月正例和负例的比例可能都不相同,这时候如果只想看一下分类器的整体性能是否稳定,则用ROC曲线比较合适,因为类别分布的改变可能使得PR曲线发生变化,这种时候难以进行模型性能的比较;反之,如果想测试不同的类别分布对分类器性能的影响,则用PR曲线比较合适。

总的来说,我们应该根据具体的应用场景,在相应的曲线上找到最优的点,得到相对应的precision,recall,f1 score等指标,然后去调整模型的分类阈值,从而得到一个符合具体应用的模型。



附:

如何画PR曲线?

根据每个测试样本属于正样本的概率值从大到小排序,依次将这些概率值作为分类阈值,当测试样本属于正样本的概率大于或等于这个threshold时,我们认为它为正样本,否则为负样本。每次选取一个不同的threshold,我们就可以得到一组recall和precision,即PR曲线上的一点。取n组不同的分类阈值,就可以得到n个点,连接起来就成为一条曲线。threshold取值越多,PR曲线越平滑。

如何画ROC曲线?

根据每个测试样本属于正样本的概率值从大到小排序,依次将这些概率值作为分类阈值,当测试样本属于正样本的概率大于或等于这个threshold时,我们认为它为正样本,否则为负样本。每次选取一个不同的threshold,我们就可以得到一组FPR和TPR,即ROC曲线上的一点。取n组不同的分类阈值,就可以得到n个点,连接起来就成为一条曲线。threshold取值越多,ROC曲线越平滑。

如何计算AUC值?

假定ROC曲线是由坐标为  的点按序连接而形成,则AUC可估算为:

原文地址:https://www.cnblogs.com/HuZihu/p/11146557.html

时间: 2024-08-02 08:52:56

查全率(Recall),查准率(Precision),灵敏性(Sensitivity),特异性(Specificity),F1,PR曲线,ROC,AUC的应用场景的相关文章

模式识别 - 查准率(Precision) 和 召回率(Recall)

查准率(Precision) 和 召回率(Recall) 本文地址: http://blog.csdn.net/caroline_wendy 模式识别的基础知识. TP: 实际是正样本, 被识别成正样本(识别正确). FP: 实际是负样本, 被识别成正样本(识别错误). FN: 实际是正样本, 被识别为负样本(识别正确). TN: 实际是负样本, 被识别为正样本(识别错误). Precision = TP/(TP+FP); 查准率, 在所有被判断为正样本中, 真正正样本的数量. Recall =

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

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

最详细的基于R语言的Logistic Regression(Logistic回归)源码,包括拟合优度,Recall,Precision的计算

这篇日志也确实是有感而发,我对R不熟悉,但实验需要,所以简单学了一下.发现无论是网上无数的教程,还是书本上的示例,在讲Logistic Regression的时候就是给一个简单的函数及输出结果说明.从来都没有讲清楚几件事情: 1. 怎样用训练数据训练模型,然后在测试数据上进行验证(测试数据和训练数据可能有重合)? 2. 怎样计算预测的效果,也就是计算Recall,Precision,F-measure等值? 3. 怎样计算Nagelkerke拟合优度等评价指标? 发现这些书本和一些写博客的朋友,

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

Accuracy, Precision, Resolution & Sensitivity

Instrument manufacturers usually supply specifications for their equipment that define its accuracy, precision, resolution and sensitivity. Unfortunately, not all of these specifications are uniform from one to another or expressed in the same terms.

目标检测中的precision,recall,AP,mAP计算详解

交并比IoU衡量的是两个区域的重叠程度,是两个区域重叠部分面积占二者总面积(重叠部分只计算一次)的比例.如下图,两个矩形框的IoU是交叉面积(中间图片红色部分)与合并面积(右图红色部分)面积之比. Iou的定义 在目标检测任务中,如果我们模型输出的矩形框与我们人工标注的矩形框的IoU值大于某个阈值时(通常为0.5)即认为我们的模型输出了正确的 精准率与召回率(Precision & Recall) 大雁与飞机 假设现在有这样一个测试集,测试集中的图片只由大雁和飞机两种图片组成,如下图所示:  假

机器学习之类别不平衡问题 (3) —— 采样方法

机器学习之类别不平衡问题 (1) -- 各种评估指标 机器学习之类别不平衡问题 (2) -- ROC和PR曲线 机器学习之类别不平衡问题 (3) -- 采样方法 前两篇主要谈类别不平衡问题的评估方法,重心放在各类评估指标以及ROC和PR曲线上,只有在明确了这些后,我们才能据此选择具体的处理类别不平衡问题的方法.本篇介绍的采样方法是其中比较常用的方法,其主要目的是通过改变原有的不平衡样本集,以期获得一个平衡的样本分布,进而学习出合适的模型. 采样方法大致可分为过采样 (oversampling)

机器学习 准确率评价指标

Precision Recall AP(Average Precision) 单纯用 precision 和 recall 都不科学,更科学的做法是把 PR曲线下的面积当做衡量尺度(这就是AP).这里的 average,等于是对 precision 进行 取平均 . 连续PR曲线 离散PR点 MAP(Mean Average Precision) MPA=mean(AP),其中AP是每个object的Average Precision(包括background) 原文地址:https://www

auc ks 新理解

转https://www.zybuluo.com/frank-shaw/note/152851 新理解:我认为auc,和ks异曲同工.auc是根据预测概率(由大到小排序)作为阈值,可分割为不多于样本个数n个阈值.即可得到n个recall和precision把这些点连成线即为roc曲线.auc即为roc下的面积.那个点最接近左上角即为最好的阈值.1和0作阈值分别得到(0,0)和(1,1)点.样本点只是曲线上的点,理论上无穷大,不可能描绘完.横:假阳率,纵:recall.n个点为相应阈值分割得到的r