roc,auc,precision,recall,f1的介绍与计算(转)

段子手实习生 段子手实习生     2022-09-18     477

关键词:

1. 基本概念

1.1 ROC与AUC

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

  • 真阳性(TP):诊断为有,实际上也有病。
  • 伪阳性(FP):诊断为有,实际却没有病。
  • 真阴性(TN):诊断为没有,实际上也没有病。
  • 伪阴性(FN):诊断为没有,实际却有病。

其关系如下图所示:

技术分享

ROC空间将伪阳性率(FPR)定义为X轴,真阳性率(TPR)定义为Y轴。TPR:在所有实际为阳性的样本中,被正确地判断为阳性之比率,TPR=TPTP+FN 。FPR:在所有实际为阴性的样本中,被错误地判断为阳性之比率,FPR=FPFP+TN

1.2 Precision、Recall与F1

对于二分类问题另一个常用的评价指标是精确率(precision)与召回率(recall)以及F1值。精确率表示在预测为阳性的样本中,真正有阳性的样本所占的比例。精确率的定义为P=TPTP+FP。召回率表示所有真正呈阳性的样本中,预测为阳性所占的比例。召回率的定义为R=TPTP+FN,F1值是精确率和召回率的调和均值,公式为F1=2PRP+R。精确率和召回率都高时,F1值也会高。通常情况下,Precision与Recall是相互矛盾的。

2. 曲线介绍

2.1 ROC曲线

ROC曲线坐标系如下图所示,虚线为随机猜测的概率,即猜对跟猜错的概率是一样的。理想情况下,我们是希望FPR为0,没有一个假阳性,TPR为1,即全为真阳性,此时所有样本都被正确分类,点位于左上角(0,1)位置处,没有一个分错的数据,这是最完美的情况,实际情况中基本不可能。如果点位于虚线下方,例如C点,说明分类错误的多,分类正确的少,此时不是我们想要的。如果点位于虚线上方,例如C点,说明分类错误的少,分类正确的多,此时是我们想要的,因此我们希望ROC曲线尽可能的靠近左上角。对于一个特定的分类器和测试数据集,只能得到一个分类结果,即ROC曲线坐标系中的一点,那么如何得到一条ROC曲线呢?分类问题中我们经常会得到某个样本是正样本的概率,根据概率值与阈值的比较来判断某个样本是否是正样本。在不同的阈值下可以得到不同的TPR和FPR值,即可以得到一系列的点,将它们在图中绘制出来,并依次连接起来就得到了ROC曲线,阈值取值越多,ROC曲线越平滑。

AUC为ROC曲线下的面积,它的面积不会大于1,由于ROC曲线一般都处于直线y=x的上方,因此AUC的取值范围通常在(0.5,1)之间。由于ROC曲线不能很好的看出分类器模型的好坏,因此采用AUC值来进行分类器模型的评估与比较。通常AUC值越大,分类器性能越好。

技术分享

在基本概念中我们提到了精确率、召回率以及F1值,既然有它们作为二分类的评价指标,为什么还要使用ROC和AUC呢?这是因为ROC曲线有个很好的特性:当测试集中的正负样本分布发生变化时,即正负样本数量相差较大时,ROC曲线仍能保持不变。实际数据集中经常会出现样本数量不平衡现象,并且测试数据中的正负样本的分布也可能随着时间发生变化。下图是两个分类器模型(算法)的ROC曲线比较图:

技术分享

2.2 P-R曲线

在P-R曲线中,Precision为横坐标,Recall为纵坐标。在ROC曲线中曲线越凸向左上角约好,在P-R曲线中,曲线越凸向右上角越好。P-R曲线判断模型的好坏要根据具体情况具体分析,有的项目要求召回率较高、有的项目要求精确率较高。P-R曲线的绘制跟ROC曲线的绘制是一样的,在不同的阈值下得到不同的Precision、Recall,得到一系列的点,将它们在P-R图中绘制出来,并依次连接起来就得到了P-R图。两个分类器模型(算法)P-R曲线比较的一个例子如下图所示:

技术分享

2.3 ROC与P-R对比

从公式计算中可以看出,ROC曲线中真阳性率TPR的计算公式与P-R曲线中的召回率Recall计算公式是一样的,即二者是同一个东西在不同环境下的不同叫法。当正负样本差距不大的情况下,ROC曲线和P-R的趋势是差不多的,但是当负样本很多的时候,ROC曲线效果依然较好,但是P-R曲线效果一般。

ROC 和 Precision-Recall 中的零分母?

】ROC和Precision-Recall中的零分母?【英文标题】:zerodenominatorinROCandPrecision-Recall?【发布时间】:2017-10-1522:54:39【问题描述】:这个问题是关于ROC曲线的,但是可以推广到Precision-Recall曲线。您可能知道,行曲线是使用假阳性率(FPR)... 查看详情

roc曲线及auc计算

...:分类精度;在信息检索(IR)领域中常用的recall和precision,等等。其实,度量反应了人们对”好”的分类结果的追求,同一 查看详情

评估指标:roc,auc,precisionrecallf1-score

...评估指标,AUC值越大,说明模型越好。如下图: 二、Precision、Recall、F1-scoreTerminologyandde 查看详情

Precision-Recall曲线或ROC曲线是不是可能是一条水平线?

】Precision-Recall曲线或ROC曲线是不是可能是一条水平线?【英文标题】:IsitpossiblethatPrecision-RecallcurveoraROCcurveisahorizontalline?Precision-Recall曲线或ROC曲线是否可能是一条水平线?【发布时间】:2015-10-0303:53:32【问题描述】:我正在处... 查看详情

pr曲线,roc曲线以及绘制,auc

参考技术A原视频链接FPR;TPR可以看作为FP的Recall;以及TP的Recall。(只是为了方便记忆)参考链接 查看详情

分类评估方法-召回率roc与auc(代码片段)

...确率与召回率F1度量ROC与AUC精确率与召回率精确率(Precision)与召回率(Recall)是分类任务中的常用指标,首先需要知道混淆矩阵。在二分类问题中,我们把样例的真实类别与分类模型预测的预测类别,... 查看详情

分类评估方法-召回率roc与auc(代码片段)

...确率与召回率F1度量ROC与AUC精确率与召回率精确率(Precision)与召回率(Recall)是分类任务中的常用指标,首先需要知道混淆矩阵。在二分类问题中,我们把样例的真实类别与分类模型预测的预测类别,... 查看详情

detection:目标检测常用评价指标的学习总结(ioutpfptnfnprecisionrecallf1-scorep-r曲线apmaproc曲线tprfpr和auc)

...理解2.3.2TN,FN在目标检测中的理解2.3.3总结3.Accuracy、Precision、Recall和F1F_1F1​-score指标3.1Accuracy3.2单类别下的Precision、recall和F1F_1F1​-score的计算方法3.2.1Precision3.2.2Recall3.2.3Precision和Recall的侧重3.2.4F1F_1F1​-score3.3多类别下的Precis... 查看详情

机器学习中的性能指标:精度召回率,pr曲线,roc曲线和auc,及示例代码(代码片段)

...3;TNTP+TN+FP+FNAccuracy=TP+TN+FP+FNTP+TN​Precision=TP(TP+FP)Precision=\\fracTP(TP+FP)Precision=(TP 查看详情

aucks新理解

...,可分割为不多于样本个数n个阈值。即可得到n个recall和precision把这些点连成线即为roc曲线。auc即为roc下的面积。那个点最接近左上角即为最好的阈值。1和0作阈值分别得到(0,0)和(1,1)点。样本点只是 查看详情

用scikit-learn实现分类指标评价

...评价指标,但是不适合样本不均衡的情况。3、精确率(Precision)又称查准率,正确预测为正样本(TP)占预测为正样本(TP+FP)的百分比。4、召回率(Recall)又称为查全率,正确预测为正样本(TP)占正样本(TP+FN)的百分比。5、F1Scor... 查看详情

roc曲线,auc,和p-r曲线的关系

参考技术A前言:二值分类器的指标很多,比如precision、recall、F1score、P-R曲线等发现这些指标或多或少只能反映模型在某一方面的性能。相比而言,ROC曲线则有很多优点,经常作为评估二值分类器最重要的指标之一。Precision(查... 查看详情

roc和auc介绍以及如何计算auc

...分类器。对于分类器,或者说分类算法,评价指标主要有precision, 查看详情

分类器性能度量指标之roc曲线、auc值

...的优劣。对于分类器,或者说分类算法,评价指标主要有precision,recall,F-score等,以及这里要讨论的ROC和AUC。混淆矩阵是理解大多数评价指标的基础,毫无疑问也是理解AUC的基础。丰富的资料介绍着混淆矩阵的概念,这里用一... 查看详情

一文读懂accuracy,precision,recall

...的横纵坐标走势是相同的,而P-R曲线则是反着的。不管是Precision,还是Recall,其实P-R曲线只考虑了正样本(预测对多少个正样本,以及找出来多少正样本),而ROC曲线即考虑了正样本(TPR,找出来多少正样本),也考虑到了负样... 查看详情

r语言使用yardstick包的pr_curve函数评估多分类(multiclass)模型的性能查看模型在多分类每个分类上的roc曲线(precision(精准率),r代表的是recall(召回率)(

R语言使用yardstick包的pr_curve函数评估多分类(Multiclass)模型的性能、查看模型在多分类每个分类上的ROC曲线(PR曲线:precision(精准率),R代表的是recall(召回率),其代表的是精准率与召回率的关系)目录 查看详情

加快 SVM 评分中的交叉验证

...】:2020-12-3120:28:32【问题描述】:我想得到acracy、average_precision、F1、precision、recall和roc_auc分数我确实意识到使用下面的代码,我会得到average_precision,问题是运行这段代码时需要大约20分钟才能显示结果,有没有更好的方法可以... 查看详情

机器学习分类问题指标——accuracy,precisionrecallf1,p-r,roc,auc(以鸢尾花为例)(代码片段)

文章目录1、基本属性:TP、TN、FP、FN2、精确率(Precision),召回率(Recall),准确率(Accuracy)3、F1-Score(精确率和召回率的调和平均数)4、P-RCurve(精确率-召回率曲线) 查看详情