首页 > 其他分享 >混淆矩阵,accuracy,准确率召回率F值,AUC,ROC

混淆矩阵,accuracy,准确率召回率F值,AUC,ROC

时间:2022-08-30 11:45:15浏览次数:86  
标签:正例 AUC ROC Precision 负例 召回 accuracy

混淆矩阵

(96条消息) 混淆矩阵(Confusion Matrix)分析_vesper305的博客-CSDN博客_confusion_matrix

Confusion Matrix

在机器学习领域,混淆矩阵(confusion matrix),又称为可能性表格或是错误矩阵。它是一种特定的矩阵用来呈现算法性能的可视化效果,通常是监督学习(非监督学习,通常用匹配矩阵:matching matrix)。其每一列代表预测值,每一行代表的是实际的类别。这个名字来源于它可以非常容易的表明多个类别是否有混淆(也就是一个class被预测成另一个class)。

Accuracy - 正确率

Accuracy = (TP + TN) / TotalNum,表示模型分类与标注一致的数量,占总样本的比例

用法:在所有指标中,正确率是最为直观的指标,且普适于多分类。在数据集平衡的场景下,是一个简单好用的指标,尤其对于多分类,是最好用的唯一指标。

缺点:

1)当数据集不平衡时,该指标不能反映模型效果。如99%的样本为负例,此时模型只需要预测所有样本均为负例,即可达到99%的正确率,但显然模型什么也没有学到。

2)作为一个总指标,也不能清晰的看出哪些类别分类不好,为什么没分好。

注意,它和后面要介绍的准确率Precision并不是一个指标,不要混淆。

 

Precision, Recall, F score - 准确率,召回率,F值

Precision = TP / (TP+FP),即模型认为是正例的样本中,有多少比例是真的正样本。

Recall = TP / (TP + FN),即真实的正例样本中,有多少比例被模型识别出来是正样本了。

F value = 2*Precision*Recall / (Precision+Recall)

F value:

1)目的:P,R 指标虽然较为细粒度的刻画了正例的预测情况,但还缺一个唯一指标来对比优劣。比如A策略相对于B策略,P高,R低,那么到底谁好呢?当然F值只是提供了一种计算方式,它作为唯一指标并不一定合理,要根据场景判断。

2)直观理解:只有P和R都很高时,F值才高。有任何一个指标低,则F值会靠近那个较低的指标。F可以变换为2 / ( 1/P + 1/R )。 从中可以看出,如果P很小,接近于0,则1/P很大,则R是多大已经不重要,最终会约等于P。反之亦然。而当P和R都取到最大值1时,F恰好等于1.

3)F1/F2/F0.5是什么意思:其实我们常说的F值是F1值。F值的原始公式 = (1 + beta^2)*Precision*Recall / (beta^2*Precision+Recall) ,F2即为beta为2时的场景。beta值用于调节Precision和Recall的权重。F0.5更重视precision,而F2更重视recall。详情参考:A Gentle Introduction to the Fbeta-Measure for Machine Learning - Machine Learning Mastery

用途:

1)准召是工业界和学术界最常用的指标。原因是很多情况下,我们只关心正样本而不关心负样本。比如搜索引擎中,我们只关心相关结果(正例)的准召,并不关心不相关结果(负例)的准召,因为虽然后者数量巨大,但后者并不影响用户。

2)而F值则往往使用的更加谨慎,因为我们有时候只关注其中一个指标,比如在搜索场景下,如果正例数量较多,我们只需要一个高准确的分类器即可,而召回可以低一点。虽然有一些其他好结果没有召回,但并不影响用户体验,因为一页只能展示10条结果,用户也不需要把所有的相关结果都看一遍。而在另外一些场景下,则可能需要高召回的分类器而准确率可以适当妥协,例如封禁场景。

3)但如果不使用F值,我们总归缺少一个唯一指标,那么如何对比不同模型的分辨能力呢?其实PR-curve,或Area-Under-PR-curve是一个非常好用的指标,在工业界中尤其是数据集不平衡时,非常好用。比AUC更加好用。后面会介绍。

缺点:当我们关心的是负例而不是正例时,或者不单单是正例时,PR指标会出问题。例如癌症的检测,我们既关心有癌症的病人的准确和召回,也关心没有癌症的病人(负例)被误诊的情况。比如正例明显多于负例的不平衡集合下,一个傻模型把所有来诊断的病人都诊断为癌症,Precision和Recall以及F值都是很高的。但无癌症病人的误诊率也是100%,这是无法接受的。

PR曲线概念:

PR曲线中的P代表的是precision(精准率),R代表的是recall(召回率),其代表的是精准率与召回率的关系,一般情况下,将recall设置为横坐标,precision设置为纵坐标。

 

AUC与ROC

AUC 是ROC曲线的面积,如下图,绿色曲线是ROC曲线,下面的浅蓝色扇形面积是AUC值。

 

其中ROC曲线:

横轴FPR = FP / (FP+TN),表示的是 1 - 负例召回率,值越小负例召回越好。

纵轴TPR = TP / (TP+FN),表示正例的召回率,值越大正例召回越好。

怎么理解这张图呢

右上角表示,负例完全不召回的情况下正例完全召回,只要把分类阈值设的足够低,这种情况一定可以发生,因此ROC总能连接右上角;左下角则表示负例完全召回时,正例完全不召回,同样是一定可以发生;而最为重要的左上角,表示负例完全召回的情况下,正例也要完全召回,可以想象一个100%正确率的分类器是可以做到这一点的,此时ROC曲线是一个倒L型直角,积分面积覆盖整个矩形,AUC也是最大的。而非100%正确率的分类器则不可能经过左上角,而会趋向于对角线,正常的分类器曲线则与图中类似。最差的情况下,一个纯随机的分类器ROC曲线就是对角线,此时AUC是0.5。

AUC的缺点也很明显,无法应对多分类,尤其是当我们只关心正样本时(即我们只关心正例的准确和召回,并不关心负例的召回),AUC的高低和实际用户感受就不一样了。

AUPR与PR曲线

AUPR在实践中非常好用,只要你不关心负例,它可以无视任何程度数据集倾斜的影响

PR曲线中的P代表的是precision(精准率),R代表的是recall(召回率),其代表的是精准率与召回率的关系,一般情况下,将recall设置为横坐标,precision设置为纵坐标。

图我就复用上面的图了,只是此时横轴是 1-召回率,纵轴是准确率,左上角表示准确率100% 且 召回率100%。大家通过意念修改一下 :)

 

标签:正例,AUC,ROC,Precision,负例,召回,accuracy
From: https://www.cnblogs.com/Catherinezhilin/p/16638764.html

相关文章

  • RocketMQ 的详解
    https://blog.csdn.net/qq_57558631/article/details/124239371https://www.cnblogs.com/happydreamzjl/articles/11951245.htmlhttps://cdn.modb.pro/db/72488https://......
  • 厚积薄发--一文带您了解阿里云 RocketMQ 轻量版消息队列(MNS)
    作者:周新宇&陈涛&李凯阿里云RocketMQ轻量版(MNS)消息队列是一个轻量、可靠、可扩展且完全托管的分布式消息队列服务。MNS能够帮助应用开发者在他们应用的分布式组件上更......
  • PowerShell教程 - 异步处理(Asynchronous Processing)
    更新记录转载请注明出处。2022年8月29日发布。2022年8月29日从笔记迁移到博客。异步处理(AsynchronousProcessing)休眠(Sleep)指定时间Start-Sleep实例:休眠1秒S......
  • 重新构建rocketmq_exporter源码,构建镜像
    1.githubhttps://github.com/apache/rocketmq-exporter 2.dockerfileFROMmaven:3.8.6-openjdk-8-slimCOPYrocketmq-exporter-master/apps/rocketmq-exporter-mas......
  • rocketMQ 集群的搭建
    准备四台机器     先实现2主2从同步   修改主配置文件   brokerName//主从要一致brokerId=0//master是0 slave>0brokerRole=SYNC_MAST......
  • RockerMQ (一)
    目录linux安装linux安装1.下载二进制安装包到~目录下2.解压unziprocketmq-all-4.4.0-bin-release.zip3.RocketMQ默认分配的JVM内存比较大,而虚拟机没有那么大的配......
  • MQ系列3:RocketMQ 架构分析
    MQ系列1:消息中间件执行原理MQ系列2:消息中间件的技术选型1背景我们前面两篇对主流消息队列的基本构成和技术选型做了详细的分析。从本篇开始,我们会专注当下主流MQ之一......
  • 关于app(process)信息
    在memmap.inc内存图中,有两处的信息和应用或者说进程有关。都是256条,估计是最多可以有256个应用或者说进程:第52行:;3000->4FFFtasklist-256entries;;00d......
  • 解析 RocketMQ 业务消息--“顺序消息”
    简介: 本篇将继续业务消息集成的场景,从功能原理、应用案例、最佳实践以及实战等角度介绍RocketMQ的顺序消息功能。作者:绍舒 引言 ApacheRocketMQ诞生......
  • WPF中使用 WndProc 来处理Windows Messages
    WPF对应的C#程序有时需要与Window32程序进行通信,会使用到窗口过程函数来接受Windows消息。引入System.Windows.Interop命名空间,将使用到其中的HwndSource使用实例如......