常用的评价指标: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个正例。模型将任意样本都分为负例,accuracy值为0.99。但是,拿这个模型去检测新样本,一个正例也分不出来。
  • 精确率(Precision)、召回率(Recall)
    \[precision=\frac{tp}{tp+fp},recall=\frac{tp}{tp+fn}\]
    precision是相对于模型预测而言的,可以理解为模型做出新预测时的自信度得分是多少或做出这个预测是对的可能性是多少。自信度。
    recall是相对于真实标签而言的,可以理解为模型预测出的正例占实际正例的比例。覆盖率。
    如果模型很贪婪,想要覆盖更多的样本,那么它就有可能会犯错。这个时候的recall值常很高,precision常很低。如果模型很保守,只对很确定的样本做出预测,则precision值常很高,recall值常很低。我们可以选择只看我们感兴趣的样本类,也就是较少数样本类的precision和recall来评价模型的好坏。
    疾病检测、反垃圾等,是在保证精确率的条件下提升召回率;搜索等是在保证召回率的情况下提升精确率。
  • F1值(F1-score)
    \[f1-score=\frac{2}{\frac{1}{P}+\frac{1}{R}}=\frac{2PR}{P+R}\]
    F1值是个综合考虑precision值和recall值的指标。
    多类别分类时,有宏平均(macro-average)和微平均(micro-average)两种。
    宏平均是指先对每个类别单独计算F1值。取这些值的算术平均值作为全局指标。这种方式平等地对待每个类别,所以其值主要受稀有类别的影响,更能体现模型在稀有类别上的表现。
    微平均是指先累加各个类别的tp、fp、tn、fn值,再由这些值来计算F1值。这种方式平等地对待每个样本,所以其值主要受到常见类别的影响。
  • ROC-AUC
    \[\begin{aligned}sensitivity&=recall=true\ positive\ rate\&=\frac{tp}{tp+fn}\&=P(\hat{y}=1|y=1)\end{aligned}\]
    \[\begin{aligned}specifity&=1-false\ positive\ rate\&=\frac{tn}{fp+tn}\&=P(\hat{y}=0|y=0)\end{aligned}\]
    无论\(y\)的真实概率是多少,都不会影响sensitivity和specificity。也就是说,这两个指标是不会受到不平衡数据的影响的。而\(precision=P(y=1|\hat{y}=1)\)是会受到数据集中正负比例的影响的。
    ROC曲线(Receiver Operating Characteristic Curve)是一个以fpr为\(x\)轴,tpr为\(y\)轴,取不同的score threshold画出来的。
    基本上,ROC曲线下面积即AUC越大,或者说曲线越接近于左上角(fpr=0, tpr=1),那么模型的分类效果就越好。一般来说,最优score threshold就是ROC曲线离\(y=x\)基准线最远的一点或者说是ROC曲线离左上角最近的一点对应的阈值,再或者是根据用户自定义的cost function来决定的。
    AUC就是从所有正例样本中随机选择出一个样本,在所有负例样本中随机选择出一个样本,使用分类器进行预测。将正例样本预测为正的概率记作\(P_1\),将负例样本预测为负的概率记作\(P_0\),\(P_1>P_0\)的概率就等于AUC值。因此,AUC反映的是分类器对于样本的排序能力。根据这个解释,如果我们完全随机地对样本进行分类,那么AUC应该接近于0.5。另外,AUC值对于样本类别是否均衡并不敏感,这也是不均衡样本通常使用AUC评价分类器性能的一个原因。通常使用AUC的目的,一是为了比较不同模型性能的好坏,二是为了找到得到最佳指标值的那个阈值点。
  • PR-AUC
    PR曲线,是以P为\(y\)轴,以R为\(x\)轴,取不同的概率阈值得到不同的(p,r)点后画成的线。
    为了解决P、R、F-Measure(即\(\frac{1}{\lambda \frac{1}{P}+(1-\lambda)\frac{1}{R}}\))的单点局限性,得到一个能够反映全局的指标,使用PR-AUC/AP。同样地,PR-AUC值越大,或者说曲线越接近右上角(p=1, r=1),那么模型就越理想、越好。
    \[AP=\int_0^1 p(r)d(r)\]

    • AAP(Approximated Average Precision)
      AAP将PR-AUC面积分割成不同的长方形然后求面积和。
      \[AAP=\sum_{k=1}^{N}p(k)\Delta r(k)\]
    • IAP(Interpolated Average Precision)
      如果存在r‘>r且p‘>p,使用p‘代替p参与面积计算。AAP会比IAP离实际的PR-AUC更近,面积也会小点。
      PASCAL VOC中使用IAP作为AP值,认为这一方法能够有效地减少PR曲线中的抖动。然后对于多类别进行AP取平均操作后得mAP值。

算法倾向如果是“宁可错杀一千,不可放过一个”,可以设定在合理的precision值下,最高的recall值作为最优点,找到这个点对应的阈值。总之,我们可以根据具体的应用或者是偏好,在曲线上找到最优的点,去调整模型的阈值,从而得到一个符合具体应用的模型。

原文地址:https://www.cnblogs.com/cherrychenlee/p/10805520.html

时间: 2024-10-29 00:30:31

常用的评价指标:accuracy、precision、recall、f1-score、ROC-AUC、PR-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

分类问题的几个评价指标(Precision、Recall、F1-Score、Micro-F1、Macro-F1

轉自 https://blog.csdn.net/sinat_28576553/article/details/80258619 四个基本概念TP.True Positive   真阳性:预测为正,实际也为正 FP.False Positive  假阳性:预测为正,实际为负 FN.False Negative 假阴性:预测与负.实际为正 TN.True Negative 真阴性:预测为负.实际也为负. [一致判真假,预测判阴阳.] 以分类问题为例: 首先看真阳性:真阳性的定义是"预测为正,实际也

信息检索的评价指标(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的计算结果其实是一样的,只是这里从检索的角度

分类算法中常用的评价指标

本文来自网络,属于对各评价指标的总结,如果看完之后,还不是很理解,可以针对每个评价指标再单独搜索一些学习资料.加油~! 对于分类算法,常用的评价指标有: (1)Precision (2)Recall (3)F-score (4)Accuracy (5)ROC (6)AUC ps:不建议翻译成中文,尤其是Precision和Accuracy,容易引起歧义. 1.混淆矩阵 混淆矩阵是监督学习中的一种可视化工具,主要用于比较分类结果和实例的真实信息.矩阵中的每一行代表实例的预测类别,每一列代表实例的真

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判断分类结果偏差极大时算法的性能

当我们对某些问题进行分类时,真实结果的分布会有明显偏差. 例如对是否患癌症进行分类,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)是用来评价二元分类