https://yongyuan-workbench.rhcloud.com/%E4%BF%A1%E6%81%AF%E6%A3%80%E7%B4%A2ir%E7%9A%84%E8%AF%84%E4%BB%B7%E6%8C%87%E6%A0%87%E4%BB%8B%E7%BB%8D-%E5%87%86%E7%A1%AE%E7%8E%87%E3%80%81%E5%8F%AC%E5%9B%9E%E7%8E%87%E3%80%81f1%E3%80%81map%E3%80%81r/

准确率、召回率、F1

信息检索、分类、识别、翻译等领域两个最基本指标是召回率(Recall Rate)准确率(Precision Rate),召回率也叫查全率,准确率也叫查准率,概念公式:

召回率(Recall)      =  系统检索到的相关文件 / 系统所有相关的文件总数

准确率(Precision) =  系统检索到的相关文件 / 系统所有检索到的文件总数

图示表示如下:

 

注意:准确率和召回率是互相影响的,理想情况下肯定是做到两者都高,但是一般情况下准确率高、召回率就低,召回率低、准确率高,当然如果两者都低,那是什么地方出问题了。一般情况,用不同的阀值,统计出一组不同阀值下的精确率和召回率,如下图:

如果是做搜索,那就是保证召回的情况下提升准确率;如果做疾病监测、反垃圾,则是保准确率的条件下,提升召回。

所以,在两者都要求高的情况下,可以用F1来衡量。

[python] view plaincopy
  1. F1 = 2 * P * R / (P + R)

公式基本上就是这样,但是如何算图1中的A、B、C、D呢?这需要人工标注,人工标注数据需要较多时间且枯燥,如果仅仅是做实验可以用用现成的语料。当然,还有一个办法,找个一个比较成熟的算法作为基准,用该算法的结果作为样本来进行比照,这个方法也有点问题,如果有现成的很好的算法,就不用再研究了。

AP和mAP(mean Average Precision)

mAP是为解决P,R,F-measure的单点值局限性的。为了得到 一个能够反映全局性能的指标,可以看考察下图,其中两条曲线(方块点与圆点)分布对应了两个检索系统的准确率-召回率曲线

可以看出,虽然两个系统的性能曲线有所交叠但是以圆点标示的系统的性能在绝大多数情况下要远好于用方块标示的系统。

从中我们可以 发现一点,如果一个系统的性能较好,其曲线应当尽可能的向上突出。

更加具体的,曲线与坐标轴之间的面积应当越大。

最理想的系统, 其包含的面积应当是1,而所有系统的包含的面积都应当大于0。这就是用以评价信息检索系统的最常用性能指标,平均准确率mAP其规范的定义如下:(其中P,R分别为准确率与召回率)

ROC和AUC

ROC和AUC是评价分类器的指标,上面第一个图的ABCD仍然使用,只是需要稍微变换。

回到ROC上来,ROC的全名叫做Receiver Operating Characteristic。

ROC关注两个指标

True Positive Rate ( TPR )  = TP / [ TP + FN] ,TPR代表能将正例分对的概率

False Positive Rate( FPR ) = FP / [ FP + TN] ,FPR代表将负例错分为正例的概率

在ROC 空间中,每个点的横坐标是FPR,纵坐标是TPR,这也就描绘了分类器在TP(真正的正例)和FP(错误的正例)间的trade-off。ROC的主要分析工具是一个画在ROC空间的曲线——ROC curve。我们知道,对于二值分类问题,实例的值往往是连续值,我们通过设定一个阈值,将实例分类到正类或者负类(比如大于阈值划分为正类)。因此我们可以变化阈值,根据不同的阈值进行分类,根据分类结果计算得到ROC空间中相应的点,连接这些点就形成ROC curve。ROC curve经过(0,0)(1,1),实际上(0, 0)和(1, 1)连线形成的ROC curve实际上代表的是一个随机分类器。一般情况下,这个曲线都应该处于(0, 0)和(1, 1)连线的上方。如图所示。

用ROC curve来表示分类器的performance很直观好用。可是,人们总是希望能有一个数值来标志分类器的好坏。

于是Area Under roc Curve(AUC)就出现了。顾名思义,AUC的值就是处于ROC curve下方的那部分面积的大小。通常,AUC的值介于0.5到1.0之间,较大的AUC代表了较好的Performance。

AUC计算工具:

http://mark.goadrich.com/programs/AUC/

P/R和ROC是两个不同的评价指标和计算方式,一般情况下,检索用前者,分类、识别等用后者。

参考链接:

http://www.vanjor.org/blog/2010/11/recall-precision/

http://bubblexc.com/y2011/148/

http://wenku.baidu.com/view/ef91f011cc7931b765ce15ec.html

准确率、召回率、F1、mAP、ROC、AUC相关推荐

  1. 准确率,召回率,F值,ROC,AUC

    准确率,召回率,F值,ROC,AUC 责任编辑:词汇网 发表时间:2016-4-23 20:08:08 度量表 1.准确率 (presion)p=TPTP+FP 理解为你预测对的正例数占你预测正例总量 ...

  2. [机器学习] 二分类模型评估指标---精确率Precision、召回率Recall、ROC|AUC

    一 为什么要评估模型? 一句话,想找到最有效的模型.模型的应用是循环迭代的过程,只有通过持续调整和调优才能适应在线数据和业务目标. 选定模型时一开始都是假设数据的分布是一定的,然而数据的分布会随着时间 ...

  3. 准确率,召回率,mAP,ROC,AUC,特异性,敏感性,假阴性,假阳性

    P/R和ROC是两个不同的评价指标和计算方式,一般情况下,检索用准确率.召回率.F1.AP和mAP,分类.识别等用ROC和AUC(特异性和敏感性是ROC当中的一个部分). 准确率.召回率.F1.AP和 ...

  4. 准确率/召回率/精准率/F值_模型评价

    准确率/召回率/精准率/F值 模型选择:对特定任务最优建模方法的选择或者对特定模型最佳参数的选择. 在训练数据集上运行模型(算法)并在测试数据集中测试效果, 迭代进行数据模型的修改, 这种方式被称为交 ...

  5. AP AR mAP ROC AUC(目标检测)

    目标检测之AP AR mAP ROC AUC(Evaluation metrics) 混淆矩阵中 TP.TN.FP.FN Precision查准率和Recall召回率 P-R曲线 AP mAP AR ...

  6. 准确率-召回率 - Precision-Recall

    Precision-Recall 准确率-召回率 本文翻译自 Precision-Recall 更多翻译可以看 Scikit-learn 某部分的中文翻译 用于评估分类器输出质量的 准确率-召回率 指 ...

  7. 【数据挖掘】K-NN 分类 ( 简介 | 分类概念 | K-NN 分类实例 | K-NN 分类准确度评估 | K-NN 分类结果评价指标 | 准确率 | 召回率 )

    文章目录 I . K-NN 简介 II . K-NN 分类 III . K-NN 分类实例 IV . K-NN 分类 准确性评估方法 V . 保持法 VI . kkk-交叉确认法 VII . K-NN ...

  8. 目标检测 YOLOv5 - 如何提高模型的指标,提高精确率,召回率,mAP等

    目标检测 YOLOv5 - 如何提高模型的指标,提高精确率,召回率,mAP等 flyfish 文中包括了YOLOv5作者分享的提高模型指标小技巧和吴恩达(Andrew Ng)在做缺陷检测项目( ste ...

  9. 图像分类 图像分割的评价指标(混淆矩阵 正确率 精准率 召回率 F1分数 IOU dice系数)

    在图像分类或者图像分割中,为评价模型的预测效果,在训练过程中通常需要比较预测值与真实标签值的差距,即误差. 目录 图像分类过程的评价指标 混淆矩阵 正确率/准确率 精准率 召回率 F1分数 图像分割过 ...

  10. 精确度/召回率/F1值/Micro-F1和Macro-F1的理解

    如下图所示,假设有若干张图片,其中12张是狗的图片其余是猫的图片.现在利用程序去识别狗的图片,结果在识别出的8张图片中有5张是狗的图片,3张是猫的图片(属于误报). 图中,实心小圆代表狗的图片,虚心小 ...

最新文章

  1. 做excel的时候要快速按照纬度的角度来分析构建:一个词语“纬度”
  2. 二叉查找树的C语言实现(一)
  3. oracle jdbctype null,Oracle数据库之springboot 项目mybatis plus 设置 jdbcTypeForNull
  4. Effective Modern C++:06lambda表达式
  5. SAP CRM WebClient UI how to disable excel export
  6. 光纤vs.铜缆:为什么光纤是智能、可持续建筑越来越多的选择
  7. RTMP规范简单分析
  8. java中goto用法源代码,java中goto语句解析12
  9. .net 3.5 数据库开发 之 LINQ 上
  10. MATLABr2006a序列号
  11. 怎么测试软件的自动升级,欧姆龙编程软件怎么升级 自动更新步骤详解
  12. ACM 算法详细分类
  13. otool nm工具命令收集
  14. keil5安装STC芯片包
  15. QC4+充电协议_一文看懂各家充电协议!总算彻底理清了
  16. 安装chrome插件:FireShot
  17. 携程2021年国庆出游报告出炉
  18. Android源码编译详解【四】:Android 6.0_源码的下载与编译
  19. hls m3u8文件学习分析
  20. 开启sketchup超速云渲染模式,文末附彩蛋!

热门文章

  1. 【前端就业课 第一阶段】HTML5 零基础到实战(九)列表
  2. python读写文件错误_Python读取csv文件错误解决方法
  3. ch340串口驱动_关于串口下载问题和超时
  4. 小眼睛有多惨?美颜都懒得救你......
  5. 史上最丧心病狂的商品定价套路:如何从数学角度,榨干你身上的每一分钱
  6. 可编程的智能小车,100种玩法,让孩子玩出理科编程思维
  7. 编程语言的“别样”编年史
  8. 哪种HTML列表会自动编号,HTML列表的种类
  9. hive sql 怎么实现循环_不出办公室就能无水造纸?让废纸“秒循环再生”怎么实现的...
  10. android编译的错误日志,Android Studio:编译器错误输出窗口在哪里?