准确率,精准率,召回率,真正率,假正率,ROC/AUC

这篇具有很好参考价值的文章主要介绍了准确率,精准率,召回率,真正率,假正率,ROC/AUC。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

  最近在看到这些词得时候老是混淆,看了之后还很容易遗忘,于是查了些资料把他们记录下来。
我们在设计深度学习网络模型的时候经常要对其进行评估,评估就要用到这些东西,在接介绍这个率,那个率之前,我先来介绍下什么是混淆矩阵,如下表所示:
混淆矩阵:
准确率,精准率,召回率,真正率,假正率,ROC/AUC

  • P(Positive):代表1
  • N(Negative):代表0
  • T(True):代表预测正确
  • F(False):代表预测错误

TP:预测为1,预测正确,即实际1
FP:预测为1,预测错误,即实际0
FN:预测为0,预测错误,即实际1
TN:预测为0,预测正确,即实际0
简单记这个混淆矩阵就是前面一个表示预测正确与否,后面一个表示预测的值。

一.准确率

混淆矩阵理理解之后我们看下准确率。
准确率:
  准确率即预测正确的结果占总样本的百分比,其公式如下:
准确率 = T P + T N T P + T N + F P + F N 准确率=\frac{TP+TN}{TP+TN+FP+FN} 准确率=TP+TN+FP+FNTP+TN
  准确率虽然可以判断总的正确率,但是在样本不平衡的情况下,准确率就显得无助了。举个例子:比如一个样本中正样本占比0.95,负样本占比0.05,这个时候只需要将全部样本都预测为正样本就能够得到95%的正确率,显然是不合理的。正是因为准确率的这种缺陷,于是诞生了精准率和召回率,或者叫做查准率和查全率。

二.精准率

  精准率(Precision)又叫查准率,它是针对预测结果而言的,是指在所有被预测为正的样本中实际为正的样本的概率,意思就是在预测为正样本的结果中,我们有多少把握可以预测正确,其公式如下:
精准率 = T P T P + F P 精准率=\frac{TP}{TP+FP} 精准率=TP+FPTP
精准率就是你认为找的是对的实际上多少是对的

  注意:精准率代表对正样本结果中的预测准确程度,而准确率则代表整体的预测准确程度,既包括正样本,也包括负样本。

三.召回率

  召回率(Recall)又叫查全率,是针对原样本而言的,是指在实际为正的样本中被预测为正样本的概率,其公式如下:
召回率 = T P T P + F N 召回率=\frac{TP}{TP+FN} 召回率=TP+FNTP
召回率就是实际上是对的样本中找出来对的的概率。

  召回率又叫查全率,从他的名字上都能看出来,召回率越高,代表实际想预测出来的样本的概率越高,它的含义类似:宁可错杀一千,绝不放过一个。

四.精准率和召回率的关系,F1分数

  通过上面的公式,我们发现:精准率和召回率的分子是相同,都是TP,但分母是不同的,一个是(TP+FP),一个是(TP+FN),两者的关系可以用一个P-R图来展示,于是就得到了我们常说的P-R曲线:
准确率,精准率,召回率,真正率,假正率,ROC/AUC
  从图中可以看出查全率和查准率是一对矛盾体,两者成反比,想要更高的查全率,那么查准率就会降低,反之,想要更高的查准率,查全率就会降低。我们怎么理解这个曲线呢?查准率表示我们预测为正样本实际上里面有多少为正样本的概率,查全率表示实际为正样本,我找出来了多少。以一个逻辑回归举例,逻辑回归的输出是一个0到1之间的概率数字,因此,如果我们想要根据这个概率判断用户好坏的话,我们就必须定义一个阈值。通常来讲,逻辑回归的概率越大说明越接近1,也就可以说他是坏用户的可能性更大。比如,我们定义了阈值为0.5,即概率小于0.5的我们都认为是好用户,而大于0.5都认为是坏用户。因此,对于阈值为0.5的情况下,我们可以得到相应的一对查准率和查全率。这个阈值是随便定义的,为了找到一个最合适的阈值满足我们的要求,我们就必须遍历0到1之间所有的阈值,而每个阈值下都对应着一对查准率和查全率,从而我们就得到了这条曲线。
这里先补充一个知识点mAP,在目标检测里面我们经常会看到这个词,他的含义就是P-R曲线下面的面积。

五.F1分数

  下面我们来讲下什么是F1分数,通常,如果我们想要找到查准率和查全率之间的一个平衡点,我们就需要一个新的指标:F1分数。F1分数同时考虑了查准率和查全率,让二者同时达到最高,取一个平衡。F1分数的公式为:
F 1 分数 = 2 × 查准率 × 查全率 查准率 + 查全率 F1分数=\frac{2\times查准率\times查全率}{查准率 + 查全率} F1分数=查准率+查全率2×查准率×查全率

六.灵敏度和特异度

  讲完了上面的各种率,下面我们再来看下ROC/AUC。在介绍ROC/AUC之前我们还需要知道两个概念:灵敏度和特异度。
灵敏度 = T P T P + F N 灵敏度=\frac{TP}{TP+FN} 灵敏度=TP+FNTP
灵敏度就是召回率。
特异度 = T N F P + T N 特异度=\frac{TN}{FP+TN} 特异度=FP+TNTN
特异度表示实际为负样本,正确的预测为负样本的概率。但是我们通常只关心正样本的概率,二不关心负样本,于是引申出来下面的假正率。假正率表示为:表示实际为负样本,错误的预测为正样本的概率

七.真正率和假正率

  细心的小伙伴可能发现了灵敏度不就是召回率吗,只是换了个马甲而已。由于我们比较关心正样本,所以需要查看有多少负样本被错误地预测为正样本,所以使用(1-特异度),而不是特异度。所以又引申出了两个概念真正率和假正率:
真正率 = 召回率 = 灵敏度 = T P T P + F N 真正率=召回率=灵敏度=\frac{TP}{TP+FN} 真正率=召回率=灵敏度=TP+FNTP
假正率 = 1 − 特异度 = F P F P + T N 假正率=1-特异度=\frac{FP}{FP+TN} 假正率=1特异度=FP+TNFP
  通过上面的定义可以发现,真正率和假正率分别是基于实际表现1和0出发的,也就是说它们分别在实际的正样本和负样本中来观察相关概率问题。正因为如此,所以无论样本是否平衡,都不会被影响。还是拿之前的例子,总样本中,95%是正样本,5%是负样本。我们知道用准确率是有水分的,但是用真正率和假正率不一样。这里,真正率只关注95%正样本中有多少是被真正覆盖的,而与那5%毫无关系,同理,假正率只关注5%负样本中有多少是被错误覆盖的,也与那95%毫无关系,所以可以看出:如果我们从实际表现的各个结果角度出发,就可以避免样本不平衡的问题了,这也是为什么选用真正率和假正率作为ROC/AUC的指标的原因。

八.ROC曲线

  下面我们看下ROC曲线ROC(Receiver Operating Characteristic)曲线,又称接受者操作特征曲线。该曲线最早应用于雷达信号检测领域,用于区分信号与噪声。后来人们将其用于评价模型的预测能力,ROC曲线是基于混淆矩阵得出的。
  ROC曲线中的主要两个指标就是真正率和假正率,上面也解释了这么选择的好处所在。其中横坐标为假正率(FPR),纵坐标为真正率(TPR),下面就是一个标准的ROC曲线图。

准确率,精准率,召回率,真正率,假正率,ROC/AUC
  与前面的P-R曲线类似,ROC曲线也是通过遍历所有阈值来绘制整条曲线的。如果我们不断的遍历所有阈值,预测的正样本和负样本是在不断变化的,相应的在ROC曲线图中也会沿着曲线滑动。
准确率,精准率,召回率,真正率,假正率,ROC/AUC
准确率,精准率,召回率,真正率,假正率,ROC/AUC
准确率,精准率,召回率,真正率,假正率,ROC/AUC

  ROC曲线中我们仍然会遇到一个问题,怎么判断ROC曲线的好坏?改变阈值只是不断地改变预测的正负样本数,即真正率和假正率,但是曲线本身是不会变的。那么如何判断一个模型的ROC曲线是好的呢?这个还是要回归到我们的目的:FPR表示模型虚报的响应程度,而TPR表示模型预测响应的覆盖程度。我们所希望的当然是:虚报的越少越好,覆盖的越多越好。所以总结一下就是真正率越高,同时假正率越低(即ROC曲线越陡),那么模型的性能就越好。ROC曲线也无视样本不平衡。
AUC
  同P-R曲线的mAP一样,ROC也会计曲线下的面积,叫做AUC。比较有意思的是,如果我们连接对角线,它的面积正好是0.5。对角线的实际含义是:随机判断响应与不响应,正负样本覆盖率应该都是50%,表示随机效果。ROC曲线越陡越好,所以理想值就是1,一个正方形,而最差的随机判断都有0.5,所以一般AUC的值是介于0.5到1之间的。
AUC的一般判断标准:文章来源地址https://www.toymoban.com/news/detail-457645.html

  • 0.5 - 0.7:效果较低,但用于预测股票已经很不错了
  • 0.7 - 0.85:效果一般
  • 0.85 - 0.95:效果很好
  • 0.95 - 1:效果非常好,但一般不太可能

到了这里,关于准确率,精准率,召回率,真正率,假正率,ROC/AUC的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 谈谈召回率(R值),准确率(P值)及F值

    通俗解释机器学习中的召回率、精确率、准确率,一文让你一辈子忘不掉这两个词 赶时间的同学们看这里:提升精确率是为了不错报、提升召回率是为了不漏报 先说个题外话,暴击一下乱写博客的人,网络上很多地方分不清准确率和精确率,在这里先正确区分一下精确率和

    2024年02月12日
    浏览(43)
  • 目标框检测中准确率、召回率、AP、mAP计算原理及代码

    1、 TP、FP、TN、FN 概念 在对数据进行预测的时候,往往有以下几个概念: TP 、FP、TN、FN。 什么意思呢?即预测情况(Positive or Negtive)是否真正反应真实情况的关系: 看下面这解析你就懂了! TP:True Positive, 预测的是正样本,且正确预测 。 FP:False Positive, 预测的是正样本

    2024年02月05日
    浏览(41)
  • 【海量数据挖掘/数据分析】 之 K-NN 分类(K-NN、K-NN实例、准确率评估方法、准确率、召回率)

    目录 【海量数据挖掘/数据分析】 之 K-NN 分类(K-NN、K-NN实例、准确率评估方法、准确率、召回率) 一、 K-NN 简介 二、K-NN 分类 三、K-NN 分类实例 1、1-NN 分类 : 此时 A 类别有 1 个 , B 类别有 0 个 , 红色点被分为 A 类别 ;  2、3-NN 分类 : 此时 A 类别有  1 个 ,  B 类别有 2 个 , 红色点

    2024年02月12日
    浏览(60)
  • 【机器学习】二分类问题中的混淆矩阵、准确率、召回率等 (Python代码实现)

    混淆矩阵(Confusion Matrix):将分类问题按照真实情况与判别情况两个维度进行归类的一个矩阵,如在二分类问题中就是一个2*2的矩阵: TP(True Positive):表示实际为真预测为真 FP(False Positive):表示实际为假预测为真 (误报) TN(True Negative):表示实际为假预测为假 FN(False N

    2024年01月24日
    浏览(48)
  • Python计算分类问题的评价指标(准确率、精确度、召回率和F1值,Kappa指标)

    机器学习的分类问题常用评论指标有:准确率、精确度、召回率和F1值,还有kappa指标 。 每次调包去找他们的计算代码很麻烦,所以这里一次性定义一个函数,直接计算所有的评价指标。 每次输入预测值和真实值就可以得到上面的指标值,很方便。 下面是这些指标的计算公

    2024年01月21日
    浏览(59)
  • Python手动输入混淆矩阵,并计算混淆矩阵的准确率、精确率、召回率、特异度、F1-score

    其中json格式的文件如下: {     \\\"0\\\": \\\"13\\\",     \\\"1\\\": \\\"18\\\",     \\\"2\\\": \\\"23\\\",     \\\"3\\\": \\\"28\\\",     \\\"4\\\": \\\"33\\\" } 可以按照以上格式(以5分类为例),先写在记事本上再更改后缀名 *注意最后一个后面没有 “,”  没有扩展名的看下面这个图给它调出来↓ 代码部分参考如下:  参考文献:使用

    2024年02月13日
    浏览(56)
  • 在分类任务中准确率(accuracy)、精确率(precision)、召回率(recall)和 F1 分数是常用的性能指标,如何在python中使用呢?

    在机器学习和数据科学中,准确率(accuracy)、精确率(precision)、召回率(recall)和 F1 分数是常用的性能指标,用于评估分类模型的性能。 准确率是模型预测正确的样本数占总样本数的比例。 精确率是指在预测为正的样本中,实际为正的比例。它关注的是预测为正的样本

    2024年01月19日
    浏览(60)
  • 语义分割准确率计算

    目录 pytorch版 pytorch准确率,miou: sklearn版

    2024年02月06日
    浏览(57)
  • 深度学习提高模型准确率方法

    我们已经收集好了一个数据集,建立了一个神经网络,并训练了模型,在测试和验证阶段最后得到的准确率不高不到90%。或者没有达到业务的期望(需要100%)。 下面列举一些提高模型性能指标的策略或技巧,来提高模型的准确率。 使用更多数据 最简单的方法就是增加数据集

    2024年02月03日
    浏览(55)
  • 语音识别的挑战:如何提高准确率

    语音识别,也被称为语音转文本(Speech-to-Text),是一种将语音信号转换为文本信息的技术。随着人工智能和大数据技术的发展,语音识别技术在各个领域得到了广泛应用,如智能家居、智能汽车、语音助手、语音搜索等。然而,语音识别技术仍然面临着许多挑战,其中最大

    2024年02月02日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包