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

news2024/11/24 2:11:46

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

定义

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

预测/参考0
TPFP
0FNTN

其中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 FontAwesome
 
iron(
    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 = 80FP = 10
健康FN = 10TN = 0

二次测试的混淆矩阵

预测/参考有病健康
有病TP = 70FP = 0
健康FN = 20TN = 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 = 25FP = 15
不相关 FN = 5TN = 55

第二种算法的混淆矩阵

预测/参考相关 不相关 
相关 TP = 20FP = 10
不相关 FN = 10TN = 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分数不考虑真阴性的比率,因此精确度和召回度比敏感性和特异性更适合此任务。

摘要

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/101491.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

新中式穿搭:柯罗芭KLOVA传承极致东方美

随着欧美风和日韩风的穿搭流行,如今在中国的大地再次刮起了一股复古风潮,而作为千年文化的沉淀,新中式风格的穿搭更加注重独特意义上的风格体现,通过传统服饰和新式的现代裁剪,款式的组合,符合现代人的一种…

【HBU】2022秋线上作业——第六次——查找排序选择判断

目录 判断题💖 1-1 希尔排序是稳定的算法。F 1-2 在散列表中,所谓同义词就是具有相同散列地址的两个元素。 T 1-3 对AVL树中的任一结点,其左、右子树的高度一定是一样的。 F 1-4 任何最小堆中从根结点到任一叶结点路径上的所有结点是有…

期末前端web大作业——基于HTML当当图书网项目的设计与实现 网上书城 网上书店 在线书店网页

常见网页设计作业题材有 个人、 美食、 公司、 学校、 旅游、 电商、 宠物、 电器、 茶叶、 家居、 酒店、 舞蹈、 动漫、 服装、 体育、 化妆品、 物流、 环保、 书籍、 婚纱、 游戏、 节日、 戒烟、 电影、 摄影、 文化、 家乡、 鲜花、 礼品、 汽车、 其他等网页设计题目, A…

再来一弹 | 美格智能强化5G阵营,推出国产芯Mini PCIe封装5G模组SRM810

近年来,我国在政策上加强顶层设计,根植移动物联网发展沃土,在技术上加快5G基础设施建设、深化4G网络应用,建立了以5G为核心、4G LTE Cat.1/NB-IoT等协同发展的移动物联网综合生态体系,全面开启了“物超人”时代新纪元。…

Linux搭建ELK日志收集系统构建:Filebeat+Redis+Logstash+Elasticse

Linux搭建ELK日志收集系统构建:FilebeatRedisLogstashElasticse 一、ELK概述: ELK是一组开源软件的简称,其包括Elasticsearch、Logstash 和 Kibana。ELK最近几年发展迅速,已经成为目前最流行的集中式日志解决方案。 Elasticsea…

Git和Github

一、Git和Github概念 Git是本地电脑上运行的版本控制软件,Github是基于Git打造的版本控制网站,可以理解为是一个全球网站仓库。Git是由Linux开发的 Github由于是网站所有具有网站的属性,同时也具有版本控制的属性。Github有三个概念&#x…

SpringBoot+Vue实现美食交流网站的设计与实现

文末获取源码 开发语言:Java 使用框架:spring boot 前端技术:JavaScript、Vue.js 、css3 开发工具:IDEA/MyEclipse/Eclipse、Visual Studio Code 数据库:MySQL 5.7/8.0 数据库管理工具:phpstudy/Navicat J…

新加坡国际学校IB均分持续全球霸榜

新加坡的教育水平和资源一直是亚洲翘楚,甚至在中小学教育方面赶超很多欧美国家。这其中,新加坡国际学校作为进入海外名校的捷径进入了中国父母的视野。 当然了新加坡有很多国际学校,虽说新加坡整体教育水平比较高,但是总归是有在平…

不同材质皮革皮衣皮裤应对西南盆地地区冬季低温阴冷湿冷气候会有什么样的效果?

PU皮 ​PU 是英文poly urethane的缩写,化学中文名称“聚氨酯”。 PU皮革就是聚氨酯成份的表皮。广泛适用于做箱包、服装、鞋、车辆和家具的装饰,它已日益得到市场的肯定,其应用范围之广,数量之大,品种之多&#xff0c…

关于git、gitlab、jenkins你知道多少?

目录 🍁git简述 🍁git基本命令 🍁分支 🍁Gitlab 🦐安装Gitlab 🦐部署Gitlab 🦐git常用命令 🍁CI&CD 🍁Jenkins 🦐安装Jenkins 🦐部署Jenkins …

关于幻读,该捋清楚了

小伙伴们都知道,MySQL 有四种不同的隔离级别,四种不同的隔离级别会带来三种不同的问题,今天我想再和大家捋一捋这个问题。 1. 隔离级别 1.1 理论 MySQL 中事务的隔离级别一共分为四种,分别如下: 序列化(…

2-2-3-6、ForkJoin工作原理分析

目录任务类型CPU密集型任务IO密集型任务线程数计算方法思考单线程相加利用多线程进行任务拆分分治算法应用场景Fork/Join引入使用前提使用ForkJoinPoolForkJoinPool构造器提交任务的方式ForkJoinTask使用限制ForkJoinPool 的工作原理工作窃取工作队列WorkQueueForkJoinWorkThre…

电压放大器的作用原理是什么

很多电子工程师虽然经常使用电压放大器,但是对于它的了解却是完全不够的。电压放大器是电子测量中经常使用到的电子测量仪器,那么什么是电压放大器,电压放大器的作用原理是什么呢,下面我们一起来看看。 电压放大器是指实验中能够帮…

pytorch 最简单的单向RNN应用

单向RNN 这几天一直在看RNN方面的知识,其中最感到疑惑的是下面的两张图。下面两张图说出了单向循环神经网络的所有原理,但是这里面其实是有一点问题的。比如下面第一张图,整个RNN的构成其实是有三个矩阵的。首先输入向量通过输入矩阵U&#…

实验8 数据库完整性、安全设计

第1关 执行 CREATE USER 创建以2022100904为用户名的用户,同时设置其密码为root1234 任务描述 执行 CREATE USER 创建以2022100904为用户名的用户,同时设置其密码为root1234 相关知识 创建用户的语法为如下: CREATE USER 用户名localhost IDE…

记一次 .NET 某安全生产信息系统 CPU爆高分析

一:背景 1.讲故事 今天是🐏的第四天,头终于不巨疼了,写文章已经没什么问题,赶紧爬起来写。 这个月初有位朋友找到我,说他的程序出现了CPU爆高,让我帮忙看下怎么回事,简单分析了下…

JaveWeb框架(三):JavaWeb项目实战 基于Servlet 实现系统登录注册功能

MVC实战项目 仓储管理系统需求:实现基本的登录和注册功能MVC实战项目:登录和注册登录功能实现注册功能实现总结Redis章节复习已经过去,新的章节JavaWeb开始了,这个章节中将会回顾JavaWeb实战项目 公司管理系统部分功能 代码会同步…

软件测试线上故障规范及模板,希望能帮到大家

目录 前言 线上故障规范及模板 [NOF-32] 全平台所有业务下单后支付异常,无法调起支付 创建: XX年/XX月/XX日 更新: XX年/XX月/XX日 解决: XX年/XX月/XX日 总结 前言 对于每一个测试人员来说,软件测试过程中有一个四字成语,真的是如噩梦一…

通用springboot框架

前言 到现在已经学习并工作了许久,于是打算弄一个通用的springboot框架。 这个框架,哪怕是你到正式工作的时候,也是能用上的,也不会给人感觉特别的low 那么,本项目的git我会放在结尾 接下来我来具体说一下该通用的spr…

谷粒商城技术栈总结

文章目录谷粒商城ElasticSearch一、基本概念1、Index(索引)2、Type(类型)3、Document(文档)4、倒排索引机制二、Docker 安装 Es1、下载镜像文件2、创建实例三、初步检索1、_cat2、索引一个文档(…