吴恩达deeplearning.ai:倾斜数据集的误差指标精确率、召回率

news2025/6/9 20:56:04

以下内容有任何不理解可以翻看我之前的博客哦:吴恩达deeplearning.ai专栏

文章目录

  • 倾斜数据集的误差指标
    • 罕见病预测
    • 精确率和召回率
  • 精确率和召回率的权衡
    • 精确率和召回率的矛盾关系
  • F1算法


倾斜数据集的误差指标

在神经网络中,如果你的数据集中正例和负例的比例差距很大,远远不及50比50,那么你的神经网络很可能效果不佳,让我们举个例子。

罕见病预测

假设你的神经网络需要预测一种罕见病,它在正常人群中的发病率约为0.5%,且你的数据集中只有0.5%代表你的预测为负,那么用以前的算法,你就很难估计你算法的性能,例如你有一个算法仅仅会打印1,结果它的准确度为99.5%,另一个算法预测的准确度为98%,这并不能说明下面这个算法的准确性不如上面一个算法。,因此我们需要一个方法,能够减少预测为1的权重,从而增加预测错误的代价。即不同的错误度量
在这里插入图片描述

精确率和召回率

首先,你需要创建一个2*2的混淆矩阵,其中,第一行第一列的格子代表真实为1,且预测也为1的数量;第一行第二列的格子代表真实为0,预测为1的数量;第二行,第一列代表真实为1,预测为0的格子;第二行第二列代表真实与预测都为0的格子。
在这里插入图片描述

精确率定义为:
t r u e   p o s t r u e   p o s + f a l s e   p o s \frac{true\:pos}{true\:pos+false\:pos} truepos+falsepostruepos
这代表在你预测为真的事件中,有多少预测正确。
召回率定义为:
t r u e   p o s t r u e   p o s + f a l s e   n e g \frac{true\:pos}{true\:pos+false\:neg} truepos+falsenegtruepos
这代表在所有真事件中,你预测正确的占多少。
当你的算法在精确度和召回率都能有比较高的表现时,那么说明你的算法是一个好算法。

精确率和召回率的权衡

在理想情况下,我们总是希望算法既能拥有高精确率也能拥有高召回率。高精确率意味着你预测为患病的患者中真的患病的可能性大,高召回率说明你识别错误真的患病的患者的概率小。但事实上,我们经常需要在这两者间进行取舍,我们看看该如何做。

精确率和召回率的矛盾关系

我们在逻辑回归中,逻辑回归输出的值位于 0 < f ( x ) < 1 0<f(x)<1 0<f(x)<1之间,当 f ( x ) f(x) f(x)预测值大于等于0.5是,我们判断为1,小于0.5时,判断为0。
在这里插入图片描述
假设有一种疾病,它的治疗代价很昂贵,但是如果不治疗,也不会产生很严重的后果,那么此时,你可以将预测的临界值从0.5改为0.9,甚至是1。既仅当你非常确定时,才会判断这个人患病。那么此时,算法就具有高精确率,低召回率。
相反,如果这个疾病治疗起来很容易,但是一旦没有被发现,那么后果会很严重,那么抱着宁错杀一千,不放过一个的想法,你可以将临界值从0.5往下调,既低精确率,高召回率。
在这里插入图片描述
当然,你有些时候也希望能全都要,事实上,精确率和召回率满足如下曲线:
在这里插入图片描述
所以在这种需求之下,例如图中的红点,选择一个Precision下降还没有很多的点,同时也能保持高Recall。
当你手动选择阈值的时候就需要这样做。
事实上,有时候你也可以让机器来替你选择一个适中的回归率和精确率,这就要提到一种F1算法,让我们举例来说明。

F1算法

假设你构建了三种算法,它们分别具有:适中的精确率和召回率;高精确率低召回率;低精确率和高召回率,那么你该如何判断三个算法哪个更好呢?一种最先想到的方法是取平均值,但是这其实并不合理,因为这是一种偏向于大值的算法,如果一个算法具有低精确率和高召回率,那么很有可能是数据样本中的该数据过少导致,结果平均值算法还把该算法认为性能很好,这就不合适了。
在这里插入图片描述
而F1算法的公式如下:
F 1    s c o r e = 1 1 2 ( 1 P + 1 R ) F1\;score=\frac{1}{\frac{1}{2}(\frac{1}{P}+\frac{1}{R})} F1score=21(P1+R1)1
这是一种更加强调小值的算法。我们知道,过低的精确率和召回率说明这个算法并不十分有效,而这个算法可以发现这一点:
在这里插入图片描述
在F1公式下,我们可以得到算法一的分数最高,比较合适了

为了给读者你造成不必要的麻烦,博主的所有视频都没开仅粉丝可见,如果想要阅读我的其他博客,可以点个小小的关注哦。

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

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

相关文章

吉林大学 容斥原理 章节作业

作业题填空题解答题 作业题 填空题 聚会上&#xff0c;5位先生各自寄存自己的帽子。在返还时&#xff0c;有( )种方法使得至少有一位先生拿到的是自己原来的帽子。 【答案】76 计算多重集 S { 4 ⋅ a , 3 ⋅ b , 4 ⋅ c , 6 ⋅ d } S\{4 \cdot a, 3 \cdot b, 4 \cdot c, …

黑马点评-附近商户实现

GEO数据结构 Redis在3.2版本中加入了对GEO的支持&#xff0c;允许存储地理坐标信息&#xff0c;根据经纬度来检索数据。 GEO本质上是基于sortedSet实现的&#xff0c;在Sorted Set中&#xff0c;每个成员都是与一个分数(score)相关联的&#xff0c;这个分数用于对成员进行排序…

如何利用生成式人工智能助力短视频剧本创作?

短视频已成为现代人获取娱乐和信息的一种流行方式。不同于传统的电影和电视剧&#xff0c;短视频的时长通常较短&#xff0c;内容形式多样&#xff0c;更适合快节奏的社会生活。本文将讨论如何编写短视频剧本&#xff0c;以及它与传统故事在结构和内容上的区别。 简介 短视频剧…

测试工具使用技巧01-->jmeter链接mysql

前言 在做接口或者性能测试的时候&#xff0c;有时需要jmeter连接数据库做操作&#xff0c;可以看看如下实例。操作实例 在mysql数据库中有如下数据表 在jmeter导入jdbc驱动插件&#xff08;需要的留言找我拿&#xff09; 在jmeter测试计划元件最下面&#xff0c;导入jdbc.…

Unity的PICO项目基础环境搭建笔记(调试与构建应用篇)

文章目录 前言一、为设备开启开发者模式1、开启PICO VR一体机。前往设置>通用>关于本机>软件版本号2、一直点击 软件版本号 &#xff0c;直到出现 开发者 选项3、进入 开发者模式&#xff0c;打开 USB调试&#xff0c;选择 文件传输 二、实时预览应用场景1、下载PC端的…

使用 Python 读取 NetCDF 数据

栅格通用数据格式(NetCDF)通常用于存储多维地理数据。这些数据的一些示例包括温度、降水量和风速。NetCDF 中存储的变量通常每天在大片(大陆)区域进行多次测量。由于每天进行多次测量,数据值会快速积累并且变得难以处理。当每个值还分配给一个地理位置时,数据管理会更加复…

tcp流式服务和粘包问题

目录 1.概念 2.流式服务 3.粘包问题 1.概念 套接字是一个全双工的 使用TCP协议通信的双方必须先建立连接,然后才能开始数据的读写,双方都必须为该连接分配必要的内核资源,以管理连接的状态和连接上数据的传输. TCP连接是全双工的,即双方的数据读写可以通过一个连接进行,完成…

什么是数据采集与监视控制系统(SCADA)?

SCADA数据采集是一种用于监控和控制工业过程的系统。它可以实时从现场设备获得数据并将其传输到中央计算机&#xff0c;以便进行监控和控制。SCADA数据采集系统通常使用传感器、仪表和控制器收集各种类型的数据&#xff0c;例如温度、压力、流量等&#xff0c;然后将这些数据汇…

git讲本地代码提交到码云https://gitee.com/

首先需要在码云中自己账号下创建一个空的仓库 第一步 如下图 第二步 仓库名字和仓库是否私有&#xff0c;其他不用选 以上操作好了以后 回到本地&#xff0c;在本地你要上传到仓库的项目路径下&#xff0c;初始化为git 执行 git init 接着&#xff0c;把远程仓库地址复制下…

外泌体相关基因肝癌临床模型预测——2-3分纯生信文章复现——03.差异表达基因筛选(2)

内容如下&#xff1a; 1.外泌体和肝癌TCGA数据下载 2.数据格式整理 3.差异表达基因筛选 4.预后相关外泌体基因确定 5.拷贝数变异及突变图谱 6.外泌体基因功能注释 7.LASSO回归筛选外泌体预后模型 8.预后模型验证 9.预后模型鲁棒性分析 10.独立预后因素分析及与临床的…

STL之deque容器代码详解

1 基础概念 功能&#xff1a; 双端数组&#xff0c;可以对头端进行插入删除操作。 deque与vector区别&#xff1a; vector对于头部的插入删除效率低&#xff0c;数据量越大&#xff0c;效率越低。 deque相对而言&#xff0c;对头部的插入删除速度回比vector快。 vector访问…

猫头虎分享已解决Bug || 云服务中断:CloudOutage, CloudProviderError

博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍》 — 提升你的IDEA技能&#xff01;《100天精通鸿蒙》 …

HashMap构造函数

HashMap() /*** Constructs an empty <tt>HashMap</tt> with the default initial capacity* (16) and the default load factor (0.75).* 这是一个默认的构造方法&#xff0c;初始化的容量大小是16&#xff0c;装填因子是0.75* a 装填因子* n 关键字个数* m 总容…

Linux随记(八)

一、crontab运行shell脚本&#xff0c;py脚本 &#xff08;注意事项&#xff09; 情景描述&#xff1a; 目前有个sh脚本他最初大致内容是。 cat t11.sh#!/bin/bash source /etc/profile /bin/python3 /tmp/1.py sh /tmp/1.sh echo -e "$(date %F)" >…

C语言指针、数组学习记录

指针 指针是什么 数据在内存中存放的方式 声明一个变量int i 3;&#xff0c;那么在内存中就会分配一个大小为4字节&#xff08;因为int类型占4字节&#xff09;的内存空间给变量i&#xff0c;这块内存空间存放的数据就是变量i的值。 换句话说就是&#xff0c;在内存中给变…

MySQL--优化(索引)

MySQL–优化&#xff08;索引篇&#xff09; 定位慢查询SQL执行计划索引 存储引擎索引底层数据结构聚簇和非聚簇索引索引创建原则索引失效场景 SQL优化经验 索引 索引&#xff08;index&#xff09;是帮助 MySQL 高效获取数据的数据结构&#xff08;有序&#xff09;。在数据…

【记录37】VueBaiduMap 踩坑一

截图 错误 Error in callback for watcher “position.lng”: “TypeError: Cannot read properties of undefined (reading ‘setPosition’)” 解释 回调观察程序“content”时出错&#xff1a;“TypeError:无法读取未定义的属性&#xff08;读取’setContent’&#xff09;”…

一文掌握:B端系统表单页的作用、组件、设计要点,另附大量案例

Hi&#xff0c;我是贝格前端工场&#xff0c;本篇分享表单页该如何设计&#xff0c;读罢此文让你对表单页有全方位的认识&#xff0c;欢迎点赞评论转发&#xff0c;有需求请私信我们。 一、表单页是什么 表单页是指在Web应用程序中用于收集和提交用户输入数据的页面。它通常由…

基于J2EE的在线考试系统设计与实现

目 录 摘 要 I Abstract II 引 言 1 1 相关技术 3 1.1 Java简介 3 1.2 JSP技术 3 1.3 MySQL数据库 4 1.4 B/S结构 4 1.5 本章小结 4 2 系统分析 5 2.1 需求分析 5 2.2 可行性分析 6 2.2.1 技术可行性 6 2.2.2 操作可行性 6 2.2.3 经济可行性 7 2.2.4 法律可行性 7 2.3 系统性能…

邓保康 App 技术支持

邓保康APP功能简介&#xff1a; 这是一款创新&#xff0c;稳定的商业购物型平台app&#xff0c;涵盖同城门店&#xff0c;便捷团购等业务需求。 如果使用过程中有任何疑问可以在帖子中提问&#xff0c;我们会第一时间进行答复和处理。 获得支持&#xff1a; 邮件&#xff1a…