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

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

                                                            

1.准确率  accuracy

  准确率:样本中类别预测正确的比例,即

准确率反映模型类别预测的正确能力,包含了两种情况,正例被预测为正例,反例被预测为反例,当我们对类别为1、类别为0的关注程度一致时(类别为对称的),准确率是一个不错的评价指标,但是如果我们更关注样本被预测为类1的情况,准确率就不是一个合适的指标,因为通过它你无法知道正例的预测情况,因为反例的预测情况也包含在其中,而这并不是我们关注的。

2.精确率 precision

  精确率:被预测为正例的样本中,真实的正例所占的比例,即

精确率反映模型在正例上的预测能力,该指标的关注点在正例上,如果我们对正例的预测准确性很关注,那么精确率是一个不错的指标。例如在医学病情诊断上,患者在意的是“不要误诊”,此时精确率是合适的指标。

  精确率是受样本比例分布影响的,反例数量越多,那么其被预测为正例的数量也会越多,此时精确率就会下降,因此当样本分布不平衡时,要谨慎使用精确率。

3.召回率 recall

  召回率:真实的正例样本中,被预测为正例的样本所占的比例,即

  召回率反映模型在正例正确预测上的覆盖率,有点“不允许有一条漏网之鱼”的感觉,如果我们关注的是对真实正例样本预测为正的全面性,那么召回率是很好的指标。例如在一些灾害检测的场景中,任何一次灾害的漏检都是难以接受的,此时召回率是很合适的指标(宁可错杀一百,不可放过一人,哈哈哈)。

  召回率是不受样本比例不平衡影响的,因为它只关注的是正例样本上的预测情况。

4.F1-score

  F1-score :兼顾精准率与召回率的模型评价指标,其定义为:

  当对精准率或者召回率没有特殊要求时,评价一个模型的优劣就需要同时考虑精准率与召回率,此时可以考虑使用F1-score。F1-score实际上是precision与recall的调和平均值,而调和平均值的计算方式为

                

调和平均值有特点呢?|a - b| 越大,c 越小;当 a - b = 0 时,a = b = c,c 达到最大值,具体到精准率和召回率,只有当二者大小均衡时,F1-score 才高。同时,F1-score也考虑了Precision、Recall数值大小的影响,只有当二者都比较高时,F1-score才会比较大。

5.ROC-AUC

  ROC(receiver operating characteristic curve)是一条曲线,其横轴表示的是FPR(False Positive Rate)——错误地预测为正例的概率,纵轴表示的是TPR(True Positive Rate)——正确地预测为正例地概率,二者地计算如下:

                 

                 

从TPR地计算方式来看,其实际上就是召回率。前面已说过,Recall不受样本不平衡的影响,实际上FPR也具有该特点。ROC曲线类似于下图,TPR、FPR地取值范围均在0~1之间

              

那么这张图是如何绘制出来地呢?在分类模型中(以决策树分类模型为例),可以计算出样本属于正例/反例的概率,这个概率是基于叶子节点上的样本计算的,如果一个叶子节点上包含了m个正例、n个反例,那么当测试集上的样本被划分到该叶子节点上时,其被预测为正例的概率即为:m/(m+n)。获知样本被预测为正例的概率之后,设定一个概率阈值,大于等于该阈值的样本属于正例,小于该阈值的样本属于反例,这样就可以计算出TPR和FPR,在0~1上递增该阈值(需选定一个递增步长),就可以计算出一些列的TPR与FPR,即可绘制出ROC;在回归模型中,是一样的方式。

  AUC(area under curve)是一个数值,从定义上可以直观的看到其表征的意思——曲线与坐标轴围成的面积,ROC-AUC即表示的是ROC曲线与坐标轴围成的面积。

  很明显的,TPR越大、FPR越小,模型效果越好,因此ROC曲线越靠近左上角表明模型效果越好,此时AUC值越大,极端情况下为1。与F1-score不同的是,AUC值并不需要先设定一个阈值。ROC-AUC不仅可以用来评价模型优劣,通过分析ROC曲线得形状特点还可以帮助分析模型,这在之后将专门写一篇博客来说明。

6.PRC-AUC

  PRC与ROC类似,包括曲线的绘制方式,不同的是PRC的横轴是Recall,纵轴是Precision。一个PRC曲线的例子为

                

  Recall越大、Precision越大表明模型效果越好,此时PRC曲线靠近右上角,AUC值也越大。与ROC-PRC不同的是,Precision受样本不平衡的影响,相应的PRC也会因此形状变化。因此,在样本数据量比较大时,ROC会比较稳定,一般选择ROC-AUC来评价模型是较为合适的。而当阈值确定时,Precision、Recall、F1-score都可以用来评价模型

原文地址:https://www.cnblogs.com/hgz-dm/p/11357936.html

时间: 2024-11-02 06:28:04

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

BERT模型在多类别文本分类时的precision, recall, f1值的计算

BERT预训练模型在诸多NLP任务中都取得最优的结果.在处理文本分类问题时,即可以直接用BERT模型作为文本分类的模型,也可以将BERT模型的最后层输出的结果作为word embedding导入到我们定制的文本分类模型中(如text-CNN等).总之现在只要你的计算资源能满足,一般问题都可以用BERT来处理,此次针对公司的一个实际项目--一个多类别(61类)的文本分类问题,其就取得了很好的结果. 我们此次的任务是一个数据分布极度不平衡的多类别文本分类(有的类别下只有几个或者十几个样本,有的类别下

目标检测的评价标准mAP, Precision, Recall, Accuracy

目录 metrics 评价方法 TP , FP , TN , FN 概念 计算流程 Accuracy , Precision ,Recall Average Precision PR曲线 AP计算 Average Precision mAP 参考资料 metrics 评价方法 注意,在多分类问题中,评价方法是逐个类计算的,不是所有类一起算,是只针对一个类算,每个类别有自己的指标值! TP , FP , TN , FN 概念 TP = 预测为positive 且ground-truth和预测一致

机器学习中的 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

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

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

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

Precision/Recall和ROC曲线与分类

[混淆矩阵与Precision/Recall和ROC曲线的关系] Precision/Recall和ROC曲线的基本介绍可以看我的另一篇博客: http://blog.csdn.net/adminabcd/article/details/46475361 接下来我们引入混淆矩阵: 当我们对样本进行分类时,会分成正例样本(记为1)和负例样本(记为0),根据分类结果与原始分类,可以计算出相应的混淆矩阵.那么则有: Precision(pre)=true positive rate=tp/(tp+fp

ROC曲线与AUC值

本文根据以下文章整理而成,链接: (1)http://blog.csdn.net/ice110956/article/details/20288239 (2)http://blog.csdn.net/chjjunking/article/details/5933105 1.概述 AUC(Area Under roc Curve)是一种用来度量分类模型好坏的一个标准.这样的标准其实有很多,例如:大约10年前在machine learning文献中一统天下的标准:分类精度:在信息检索(IR)领域中常

信息检索的评价指标(Precision, Recall, F-score, MAP)

之前写过一篇blog叫做机器学习实战笔记之非均衡分类问题:http://blog.csdn.net/lu597203933/article/details/38666699其中对Precision和Recall及ROC都有所讲解,其中区别在于Precision,Recall, F-score, MAP主要用于信息检索,而ROC曲线及其度量指标AUC主要用于分类和识别,ROC的详细介绍见上面的blog,这里的Precision.Recall和上篇blog的计算结果其实是一样的,只是这里从检索的角度

通过Precision/Recall判断分类结果偏差极大时算法的性能

当我们对某些问题进行分类时,真实结果的分布会有明显偏差. 例如对是否患癌症进行分类,testing set 中可能只有0.5%的人患了癌症. 此时如果直接数误分类数的话,那么一个每次都预测人没有癌症的算法也是性能优异的. 此时,我们需要引入一对新的判别标准:Precision/Recall来进行算法的性能评判,它们的定义如下: 可以看出,Precision表示:预测一件事件发生,它实际发生的概率是多少.换言之:预测准的概率如何. Recall表示:一件事情实际发生了,能把它预测出来的概率是多少.

F1 score,micro F1score,macro F1score 的定义

F1 score,micro F1score,macro F1score 的定义 2018年09月28日 19:30:08 wanglei_1996 阅读数 976 本篇博客可能会继续更新 最近在文献中经常看到precesion,recall,常常忘记了他们的定义,在加上今天又看到评价多标签分类任务性能的度量方法micro F1score和macro F2score.决定再把F1 score一并加进来把定义写清楚,忘记了再来看看. F1score F1score(以下简称F1)是用来评价二元分类