精度和查全率源自信息检索,但也用于机器学习设置中。但是,在某些情况下,使用精度和查全率可能会出现问题。在这篇文章中,我将讨论召回率和精确度的缺点,并说明为什么敏感性和特异性通常更有用。

定义

对于类别0和1的二进制分类问题,所得混淆矩阵具有以下结构:

预测/参考 0
TP FP
0 FN TN

其中TP表示真阳性的数量(模型正确预测阳性类别),FP表示假阳性的数量(模型错误预测阳性类别),FN表示假阴性的数量(模型错误预测阴性类别),TN表示真实否定数(模型正确预测否定类别)。敏感性(召回率),精确度(阳性预测值,PPV)和特异性(真阴性率,TNV)的定义如下:

灵敏度确定正确预测来自阳性分类的观察结果的速率,而精度则表明正确预测预测的正确率。另一方面,特异性是基于假阳性的数量,它表示正确预测来自阴性类别的观察结果的速率。

敏感性和特异性的优势

基于敏感性和特异性的模型评估适用于大多数数据集,因为这些措施会考虑混淆矩阵中的所有条目。敏感性处理真假阳性和假阴性,而特异性处理假阳性和假阴性。这意味着当同时考虑真阳性和阴性时,敏感性和特异性的结合是一项整体措施。

敏感性和特异性可以用一个单一的量来概括,即平衡的准确度,其定义为两种方法的平均值:

平衡精度在[0,1] [0,1]范围内,其中0和1的值分别表示最坏的分类器和最好的分类器。

召回率和精确度的缺点

使用召回率和精度评估模型不会使用混淆矩阵的所有单元。回忆处理的是真实的肯定和错误的否定,而精度处理的是真实的肯定和错误的肯定。因此,使用这对绩效衡量指标,就不会考虑真正的负面影响。因此,精度和召回率仅应在否定类别的正确识别不起作用的情况下使用。 可以将精度定义为

精度和召回率通常归纳为一个单一的数量,即F1得分 :

F1在[0,1] [0,1]范围内,对于分类器,将最大化精度和召回率,将为1。由于F1分数基于 平均值,因此对于精度和查全率的不同值非常敏感。假设分类器的灵敏度为90%,精度为30%。那么常规平均值将是,但是 平均值(F1得分)将是

例子

在这里,我提供两个示例。第一个示例研究了将精度用作性能指标时可能出现的问题。

使用精度时会出什么问题?

当很少有观察结果属于肯定类别时,精度是一个特别糟糕的衡量标准。让我们假设一个临床数据集,其中90%90%的人患病(阳性),只有10%10%的人健康(阴性)。让我们假设我们已经开发了两种测试来对患者是疾病还是健康进行分类。两种测试的准确度均为80%,但会产生不同类型的错误。

# to use waffle, you need
#   o FontAwesomeiron(waffle(c("Diseased" = 90, "Healthy" = 10), rows = 5, use_glyph = "child", glyph_size = 5, title = "Reference", colors = ref.colors),waffle(c("Diseased (TP)" = 80, "Healthy (FN)" = 10, "Diseased (FP)" = 10), rows = 5, use_glyph = "child", glyph_size = 5, title = "Clinical Test 1", colors = c(true.colors[1], false.colors[2], false.colors[1]))
)

第一次测试的混淆矩阵

预测/参考 有病 健康
有病 TP = 80 FP = 10
健康 FN = 10 TN = 0

二次测试的混淆矩阵

预测/参考 有病 健康
有病 TP = 70 FP = 0
健康 FN = 20 TN = 10

两种测试的比较

让我们比较两个测试的性能:

测量 测试1 测试2
灵敏度(召回) 88.9% 77.7%
特异性 0% 100%
精确 88.9% 100%

考虑到敏感性和特异性,我们不会选择第一个测试,因为它的平衡准确度仅为,而第二个测试的平衡准确度仅为

但是,使用精度和召回率,第一个测试的F1得分为,而第二个测试的得分更低,为。因此,尽管特异性为0%,但我们发现第一个测试优于第二个测试。因此,当使用该测试时,  所有健康患者将被分类为患病。这将是一个大问题,因为所有这些患者都会由于误诊而遭受严重的心理压力和昂贵的治疗。如果我们改用特异性,我们将选择第二种模型,该模型不会以竞争敏感性产生任何假阳性。

让我们考虑一个信息检索示例,以说明精度何时是有用的标准。假设我们要比较两种具有80%的准确性的文档检索算法。


iron(waffle(c("Relevant" = 30, "Irrelevant" = 70), rows = 5, use_glyph = "file", glyph_size = 5, title = "Reference", colors = ref.colors),waffle(c("Relevant (TP)" = 25, "Irrelevant (FN)" = 5, "Relevant (FP)" = 15, "Irrelevant (TN)" = 55), rows = 5, use_glyph = "file", glyph_size = 5, title = "Retrieval Algorithm 1", colors = c(true.colors[1], false.colors[2], false.colors[1], true.colors[2]))
)

第一种算法的混淆矩阵

预测/参考 相关  不相关 
相关  TP = 25 FP = 15
不相关  FN = 5 TN = 55

第二种算法的混淆矩阵

预测/参考 相关  不相关 
相关  TP = 20 FP = 10
不相关  FN = 10 TN = 60

两种算法的比较

让我们根据混淆矩阵计算两种算法的性能:

测量 算法1 算法2
灵敏度(召回) 83.3% 66.7%
特异性 78.6% 85.7%
精确 62.5% 66.7%
平衡精度 80.95% 76.2%
F1分数 71.4% 66.7%

在此示例中,平衡的精度和F1分数都将导致首选第一种算法而不是第二种算法。请注意,报告的平衡精度绝对高于F1分数。这是因为由于来自否定类的大量丢弃观察,这两种算法的特异性都很高。由于F1分数不考虑真阴性的比率,因此精确度和召回度比敏感性和特异性更适合此任务。

摘要

在这篇文章中,我们看到应该仔细选择绩效指标。尽管敏感性和特异性通常表现良好,但精确度和召回率仅应在真正的阴性率不起作用的情况下使用。

R语言中敏感性和特异性、召回率和精确度作为选型标准的华夫图案例相关推荐

  1. 如何在R语言中建立六边形矩阵热图heatmap可视化

    原文链接:http://tecdat.cn/?p=18879 这是一个六边形热图可视化程序,主要用到的知识RColorBrewer,fields,也就是R中的可视化绘图库(点击文末"阅读原文 ...

  2. R语言中使用pkgbuild::find_rtools查看是否有Rtools、使用Sys.which函数查看make是否存在、如果没有则安装、使用writeLines函数绑定R和Rtools

    R语言中使用pkgbuild::find_rtools(debug = TRUE)查看是否有Rtools.使用Sys.which函数查看make是否存在.如果没有则安装Rtools.使用writeLi ...

  3. R语言中如何计算C-Statistics?几种计算方法详解

    R语言中如何计算C-Statistics?几种计算方法详解 目录 R语言中如何计算C-Statistics? #包导入 #数据加载编码

  4. r语言 rgl 强制过程中_一个R语言中操纵矢量空间数据的标准化工具—sf

    ​注: 本文是R语言sf包的核心开发者和维护者--来自德国明斯特大学的地理信息学教授:Edzer Pebesma 的一篇关于sf包的简介,发表于2018年7月的R语言期刊,主要讲述了sf的定位.功能. ...

  5. R语言中的特殊值 NA NULL NaN Inf

    这几个都是R语言中的特殊值,都是R的保留字, NA:Not available  表示缺失值   用 is.na() 来判断是否为缺失值 NULL:表示空值,即没有内容  用 is.null() 来判 ...

  6. R开发(part8)--应用R语言中的函数环境空间

    学习笔记,仅供参考,有错必纠 文章目录 R开发 应用R语言中的函数环境空间 R语言的函数环境空间 封闭环境 绑定环境 运行环境 调用环境 函数环境空间图示 R开发 应用R语言中的函数环境空间 R语言的 ...

  7. R开发(part2)--R语言中的数学计算

    学习笔记,仅供参考,有错必纠 参考自:<R的极客理想>-- 张丹 文章目录 R开发 R语言中的数学计算 对数 加权平均.连乘.差分.秩.任意数.全体数 阶乘.组合.排列 累加.累乘.最小累 ...

  8. r语言中正定矩阵由于误差不正定_R语言之数据处理(一)

    在上一篇小文中,提到了关于R语言导入数据的一些方法,之后的重点就转向了数据的处理上.数据处理其实在整个数据分析项目中所占用的时间是比较多的,所以根据处理的目的不同,也有不同的处理方法.在R语言中,我通 ...

  9. r语言 将表格导出为csv_如何将R语言中表格数据输出为Excel文件.pdf

    如何将R 语言中的表格数据输出为Excel 文件 熊荣川 六盘水师范学院生物信息学实验室 xiongrongchuan@126.com /u/Bearjazz 平台的开放性使得R 语言具有了丰富的运算 ...

最新文章

  1. ubuntu 运行android sdk 下的工具adb报bash: ./adb: No such file or directory
  2. android开发--详解ListView,动态添加,删除Adapter中的数据项
  3. JS Map 简单实现
  4. (网络编程)URL下载网络资源
  5. HDU - 5015 233 Matrix(矩阵快速幂)
  6. mysql5.0 java连接_Java连接mysql5.0
  7. 工作215:点击按钮报错
  8. 2018.2.8 php实现qq登陆接口
  9. 【Pytorch神经网络理论篇】 02 Pytorch快速上手(二)GPU与CPU张量切换+具有随机值的张量+张量的数学运算
  10. LeetCode 1818. 绝对差值和(二分查找)
  11. mongodb的条件查询笔记
  12. java 匿名委托_委托,匿名方法,λ 表达式
  13. mysql myisam写入性能_(转)innodb 与 myisam 读写性能分析
  14. Android的JNI【实战教程】5⃣️---Android Studio 2.2 以上 NDK开发
  15. Python Sklearn.metrics 简介及应用示例(机器学习各种评价指标)
  16. Linux FTP 服务器配置简单说明
  17. Linux常用查找命令
  18. JAVA项目面试总结 电商系统 OA办公系统 P2P网贷
  19. Pandas缺失值inf与nan处理实践
  20. 安卓手机文件管理器内置FTP服务器无需安装任何软件共享安卓文件wifi下手机共享电脑文件

热门文章

  1. (6.1)MATLAB机器人正、逆解中姿态求解的欧拉角的说明
  2. 最新WIN10 64位21H2正式版19044.2006
  3. 我们分析了GitHub上5.46 亿条日志,发现中国开源虽然贡献大但还有这些不足......
  4. C语言:编求阶乘函数
  5. 数组 保存学生的成绩
  6. WebView-WebView简介
  7. 分享几个实用的chatgpt网址
  8. 2021年全球无水氢氟酸收入大约3120.8百万美元,预计2028年达到3634.6百万美元
  9. eversync safari_推荐好用的firefox和chrome的书签同步工具
  10. 计算机安全使用环境及要求吗,计算机安全使用环境及要求02