对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
对accuracy、precision、recall、F1-score、ROC-AUC、PRC-AUC的一些理解相关推荐
- 算法模型评价详解:confusion matrix Accuracy Precision Recall F1 调和平均 加权F1 Micro-F1 Macro-F1 PRC ROC AUC
目录 问题定义 confusion matrix Accuracy Precision和Recall和PRC F1和调和平均 加权F1 Micro-F1和Macro-F1 ROC和AUC PRC对比R ...
- auc计算公式_图解机器学习的准确率、精准率、召回率、F1、ROC曲线、AUC曲线
机器学习模型需要有量化的评估指标来评估哪些模型的效果更好. 本文将用通俗易懂的方式讲解分类问题的混淆矩阵和各种评估指标的计算公式.将要给大家介绍的评估指标有:准确率.精准率.召回率.F1.ROC曲线. ...
- 多分类模型Accuracy, Precision, Recall和F1-score的超级无敌深入探讨
https://zhuanlan.zhihu.com/p/147663370?from_voters_page=true 众所周知,机器学习分类模型常用评价指标有Accuracy, Precision ...
- 机器学习模型常用评价指标(Accuracy, Precision, Recall、F1-score、MSE、RMSE、MAE、R方)
前言 众所周知,机器学习分类模型常用评价指标有Accuracy, Precision, Recall和F1-score,而回归模型最常用指标有MAE和RMSE.但是我们真正了解这些评价指标的意义吗? ...
- Accuracy, Precision, Recall和F1-score解释
本文解释分类问题常用评价指标Accuracy, Precision, Recall和F1-score 主要参考以下文章 多分类模型Accuracy, Precision, Recall和F1-scor ...
- sklearn.metrics —— 混淆矩阵及其绘制、Accuracy/Precision/Recall/F1-score
1. confusion_matrix sklearn 关于 confusion_matrix 混淆矩阵接口的定义十分清楚:sklearn.metrics.confusion_matrix(y_tru ...
- 机器学习分类问题指标评估内容详解(准确率、精准率、召回率、F1、ROC、AUC等)
文章目录 前言 一.混淆矩阵(confusion matrix) 二.准确率,精准率,召回率,F1分数 1. 准确率(Accuracy) 2. 精确率(Precision) 3. 召回率(Recall ...
- sklearn计算准确率、精确率、召回率、F1 score
目录 混淆矩阵 准确率 精确率 召回率 P-R曲线 F1 score 参考资料 分类是机器学习中比较常见的任务,对于分类任务常见的评价指标有准确率(Accuracy).精确率(Precision).召 ...
- 【深度学习中模型评价指标汇总(混淆矩阵、recall、precision、F1、AUC面积、ROC曲线、ErrorRate)】
深度学习中模型好坏的所有评价指标汇总(混淆矩阵.recall.precision.F1score.AUC面积.ROC曲线.ErrorRate) 导航 0.混淆矩阵 1.AUC面积 2.ROC曲线 3. ...
- 机器学习11. ROC曲线、AUC值、Accuracy、Precision、Recall 含义
AUC/ROC,Accuracy,Precision,Recall 含义.查准率,查全率,样本均衡问题 部分图片转自这里 行的True和False表示预测为正负 列的Pos和Neg表示真实的正负 表哥 ...
最新文章
- 如何判断基因组的重复区域_人类参考基因组GRCh37 VS GRCh38
- 华为深度学习新模型DeepShift:移位和求反代替乘法,神经网络成本大降
- ResNeXt——与 ResNet 相比,相同的参数个数,结果更好:一个 101 层的 ResNeXt 网络,和 200 层的 ResNet 准确度差不多,但是计算量只有后者的一半...
- 《Android程序设计》一第一部分 工具和基础
- 对图片对比度和亮度的理解
- 爬虫必备技能!开发者工具技巧总结
- android 大视图风格通知栏,Android中使用Notification实现宽视图通知栏(Notification示例二)...
- 序列化包含多种不明类型的集合
- SecureCRT防止自动断开
- Python机器学习:KNN算法04f分类准确度
- 页面无法正常显示,淘宝又崩了!周五上班摸鱼被发现...
- mongodb数据库调用
- 005.在Windows下编程让效率起飞
- 提高mysql性能_提升MySQL性能值得借鉴的几个简易方法
- Android Studio第一个NDK程序
- Cocos Creator 3.6 新特性详解 1/3:编辑器篇
- 用iperf在ambarella s2l上进行网络性能测试
- buntu22.04安装WPS中文版(一百一十八)
- markdown好看的模板
- 【SAP BO】制作SAP BO Dashboards入门教程(一)