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

                                                            

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都可以用来评价模型

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

  1. 机器学习--如何理解Accuracy, Precision, Recall, F1 score

    当我们在谈论一个模型好坏的时候,我们常常会听到准确率(Accuracy)这个词,我们也会听到"如何才能使模型的Accurcy更高".那么是不是准确率最高的模型就一定是最好的模型? 这篇博文会向大家解释 ...

  2. Precision,Recall,F1的计算

    Precision又叫查准率,Recall又叫查全率.这两个指标共同衡量才能评价模型输出结果. TP: 预测为1(Positive),实际也为1(Truth-预测对了) TN: 预测为0(Negati ...

  3. 机器学习基础梳理—(accuracy,precision,recall浅谈)

    一.TP TN FP FN TP:标签为正例,预测为正例(P),即预测正确(T) TN:标签为负例,预测为负例(N),即预测正确(T) FP:标签为负例,预测为正例(P),即预测错误(F) FN:标签 ...

  4. 评价指标整理:Precision, Recall, F-score, TPR, FPR, TNR, FNR, AUC, Accuracy

    针对二分类的结果,对模型进行评估,通常有以下几种方法: Precision.Recall.F-score(F1-measure)TPR.FPR.TNR.FNR.AUCAccuracy   真实结果 1 ...

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

    BERT预训练模型在诸多NLP任务中都取得最优的结果.在处理文本分类问题时,即可以直接用BERT模型作为文本分类的模型,也可以将BERT模型的最后层输出的结果作为word embedding导入到我们 ...

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

    目录 metrics 评价方法 TP , FP , TN , FN 概念 计算流程 Accuracy , Precision ,Recall Average Precision PR曲线 AP计算 A ...

  7. Classification week6: precision & recall 笔记

    华盛顿大学 machine learning :classification  笔记 第6周 precision & recall 1.accuracy 局限性 我们习惯用 accuracy ...

  8. Mean Average Precision(mAP),Precision,Recall,Accuracy,F1_score,PR曲线、ROC曲线,AUC值,决定系数R^2 的含义与计算

    背景   之前在研究Object Detection的时候,只是知道Precision这个指标,但是mAP(mean Average Precision)具体是如何计算的,暂时还不知道.最近做OD的任 ...

  9. 机器学习常见的几种评价指标:精确率(Precision)、召回率(Recall)、F值(F-measure)、ROC曲线、AUC、准确率(Accuracy)

    原文链接:https://blog.csdn.net/weixin_42518879/article/details/83959319 主要内容:机器学习中常见的几种评价指标,它们各自的含义和计算(注 ...

  10. 机器学习中的 precision、recall、accuracy、F1 Score

    1. 四个概念定义:TP.FP.TN.FN 先看四个概念定义: - TP,True Positive - FP,False Positive - TN,True Negative - FN,False ...

随机推荐

  1. 女儿拿着小天才电话手表问我App启动流程

    前言 首先,new一个女儿, var mDdaughter = new 女儿("6岁","漂亮可爱","健康乖巧","最喜欢玩小天 ...

  2. OpenStack最新版本--Victoria发布亮点与初体验

    前言 `OpenStack`是一个云操作系统,可控制整个数据中心内的大型计算,存储和网络资源池,所有资源均通过具有通用身份验证机制的`API`进行管理和配置. 还提供了一个仪表板,可让管理员进行控制, ...

  3. 用Docker容器安装Jenkins

    先安装Docker 可以参考我的上一篇文章 链接 拉取Jenkins最新镜像,可跟版本号 不跟默认拉取最新镜像 docker pull jenkins/jenkins 创建JenKins的工作目录 m ...

  4. 习题3-5 谜题(Puzzle, ACM/ICPC World Finals 1993, UVa227)

    #include<stdio.h> #include<string.h> char s[5][5]; int main() { while(gets(s[0])) { int ...

  5. JAVA Schedule的Cron表达式

    spring中用到的定时任务,一般用到的有Timer()和Schedule Cron表达式一般是程序的定时任务中所要起的..我们用的springboot中的@Schedule中,启动类中添加enabl ...

  6. 【9】进大厂必须掌握的面试题-DevOps面试

    Q1.DevOps和Agile之间的根本区别是什么? 下表中列出了两者之间的差异. 特征 DevOps--开发运维 Agile--敏捷 敏捷 开发和运营中的敏捷性 只有发展才能敏捷 流程/实践 涉及C ...

  7. Go语言基础知识01-用Go打个招呼

    每一种编程语言,从读一本好书开始 每一种编程语言,也从Helloworld开始 1. 环境准备 1.1 安装golang 在Ubuntu下,直接输入命令可以安装最新版本: $ sudo apt-get ...

  8. dubbo配置的覆盖关系

    dubbo推荐在Provider上尽量多配置Consumer端属性: 由服务提供方设置超时,因为一个方法需要执行多长时间,服务提供方更清楚,如果一个消费方同时引用多个服务,就不需要关心每个服务的参数设 ...

  9. 那些鼓吹国内首个.NET 5框架的,该醒醒了!

    前两天看过园子里有篇[国内首个 .NET 5 框架 XX 斩获 XXX stars,XXX 发布],一顿羡慕嫉妒恨啊.我这.net core 3.1才上手没几天,还没用热乎呢,你这.NET 5的框架都 ...

  10. Volley获取json对象

    url必须返回一个json文本,由于网上没有找到返回json的url,我用Tomcat写了一个json文件, 在这个文件夹下见一个以json后缀的json文件,内容是json文本,然后输入浏览器输入h ...