机器学习(二十二):精度和召回率

一、倾斜数据集

倾斜数据集:一个数据集中的正面和负面例子的比例非常不平衡,比如数据集中,结果为1的占比20%,结果为0的占比80%

例子:如果数据集的结果中只有0.5%是1,其余结果是0。有一个模型的预测准确度是99.5%,但是预测了所有数据的结果都是0,这个模型的准确度很高,但是预测不出结果为1,这不能代表这个模型是好模型。因此需要引入其他的误差度量方式来评估模型好坏。

二、精度和召回率

精度:预测为1的数据中,实际真正为1的占比。

召回率:实际为1的数据中,预测真正为1的占比。

例子:下图是实际结果为1和0时,预测结果为1和0的数量统计。

  • 实际为1,预测真1的数据有15个;
  • 实际为1,预测假0的数据有10个;
  • 实际为0,预测假1的数据有5个;
  • 实际为0,预测真0的数据有70个

精度计算:

精度=真正1的数量/预测为1的数量=真1的数量/(真1的数量+假1的数量)=15/(15+5)

召回率计算:

召回率=真正1的数量/实际1的数量=真1的数量/(真1的数量+假0的数量)=15/(15+10)

三、精度和召回的权衡

以逻辑回归为例:模型预测出结果为1的概率是f_{\vec{w},b}(\vec{x})

可以设定阈值为0.5,当f_{\vec{w},b}(\vec{x})≥0.5时,结果为1,当f_{\vec{w},b}(\vec{x})<0.5时,结果为0

也可以设定阈值为0.7,当f_{\vec{w},b}(\vec{x})≥0.7时,结果为1,当f_{\vec{w},b}(\vec{x})<0.7时,结果为0

也可以设定阈值为0.3,当f_{\vec{w},b}(\vec{x})≥0.3时,结果为1,当f_{\vec{w},b}(\vec{x})<0.3时,结果为0

当提高阈值,能提高精度,但是会降低召回率

当降低阈值,能提高召回率,但是会降低精度

如何权衡精度和召回率?

可以使用F1 score结合精度和召回率,F1 score也称为谐波平均值,是一种取平均值的方法,计算结果更偏向于较小的值。

计算公式(P为精度,R为召回):

F1 score = \frac{1}{\frac{1}{2}(\frac{1}{P}+\frac{1}{R}))} = 2\frac{PR}{P+R}

学习来源:吴恩达机器学习,14.1-14.2节

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

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

相关文章

【elasticsearch实现词重复,文档长度不影响匹配度】

elasticsearch实现词重复,文档长度不影响匹配度 前言BM25(默认)索引重建 前言 搜索场景要求: 关键词重复出现不影响匹配度【默认重复匹配度会提高】记录的文档长度不影响匹配度【默认文档越短,匹配度越高】 BM25&am…

【信创】udisk2服务异常导致U盘使用中自动移除问题解决

原文链接:【信创】udisk2服务异常导致U盘使用中自动移除问题解决 Hello,大家好啊!今天给大家带来一篇关于在信创终端操作系统上由于udisk2服务异常导致U盘等移动设备在使用中自动移除问题的排查文章。udisk2是一个管理存储设备的服务&#xf…

restTemplate实现http远程调用

import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.client.RestTemplate; /*** description 将RestTemplate注入到容器当中,让他保持单例,当我们哪个…

树莓派下,docker中安装部署TensorFlow java版本

在树莓派上安装和部署TensorFlow Java版本需要一些特定的步骤,尤其是当你打算使用Docker容器来运行它时。以下是详细的步骤,帮助你在树莓派上完成这一任务。 一、准备工作 确保你的树莓派操作系统已更新,并安装了Docker。如果尚未安装,使用以下命令进行安装和更新: sud…

C++学习第四天

文章目录 1. 存储变量值的内存2. 声明并初始化指针3.引用运算符4. 解除引用运算符 1. 存储变量值的内存 /* - 指针是一个变量,与所有变量一样,指针也占用内存空间- 指针的特殊之处在于,指针包含的值(这里为0x558)被解…

【计算机网络】OSPF单区域实验

一:实验目的 1:掌握在路由器上配置OSPF单区域。 2:学习OSPF协议的原理,及其网络拓扑结构改变后的变化。 二:实验仪器设备及软件 硬件:RCMS交换机、网线、内网网卡接口、Windows 2019操作系统的计算机等。…

Vue 3 实现左侧列表点击跳转滚动到右侧对应区域的功能

使用 Vue 3 实现左侧列表点击跳转到右侧对应区域的功能 1. 引言 在这篇博客中,我们将展示如何使用 Vue 3 实现一个简单的页面布局,其中左侧是一个列表,点击列表项时,右侧会平滑滚动到对应的内容区域。这种布局在很多应用场景中都…

Llama 3.1 405B 详解

2024 年 7 月 23 日星期二,Meta 宣布推出 Llama 3.1,这是其Llama 系列大型语言模型 (LLM)的最新版本。虽然只是对 Llama 3 模型进行小幅更新,但它特别引入了Llama 3.1 405B——一个 4050 亿参数的模型,这是迄今为止世界上最大的开…

力扣刷题录——链表

一、移除链表元素 移除链表元素 法一:不使用虚拟头节点 ListNode* removeElements(ListNode* head, int val) {//若删除头节点while(head!NULL&&head->valval)//连续删除头节点的条件{headhead->next;} //删除其他节点(先判断是不是空链…

【Qt 关于信号和槽 的参数类型和参数顺序关系】

前言:信号的参数类型和参数顺序一定要严格要求并且指明(特别是当同一信号会发出不同参数类型和顺序的信号时),槽会根据参数类型和参数顺序进行匹配相应的槽函数,期间槽函数的自动类型匹配也可以生效。 信号定义&#x…

运行ruoyi

nacos 数据库配置 修改nacos/conf/application.properties 单机版运行 startup.cmd -m standalone redis 运行后端 运行gateway,auth,modules/system模块 可能遇到的问题:端口正在使用 解决 netstat -ano | findstr 9200 taskkill -pid 18284 -f

JAVA同城圈子达人交友系统源码支持微信小程序+公众号+H5+APP

🌈 同城圈子达人交友系统,遇见志同道合的TA! 🎉 开篇:告别孤单,同城圈子等你来探索! 在这个快节奏的城市生活中,你是否常常感到孤独,渴望找到一群志同道合的朋友&#…

发现洗白的公开伎俩

利益方把事件A和事件B放在一起,事件A和事件B有明显逻辑冲突,故意把A和B在一起炒大。一段时间就有人利用逻辑冲突来故意辟谣,把事件真实全部否定,达到舆论上既没有做A或其相关事项,也没有做B或其相关事项的目的&#xf…

Elasticsearch基础(六):使用Kibana Lens进行数据可视化

文章目录 使用Kibana Lens进行数据可视化 一、进入Kibana Lens 二、基础可视化 1、指标可视化 2、垂直堆积条形图 3、表格 三、高级可视化 1、多图层和索引 2、子桶 3、树状图 使用Kibana Lens进行数据可视化 一、进入Kibana Lens 在Kibana主页,单击页面…

【资料分享】2024钉钉杯大数据挑战赛A题思路解析+代码演示

2024第三届钉钉杯大学生大数据挑战赛今天已经开赛,【A题】思路解析代码,资料预览:

Conda的守护神:包兼容性测试全指南

Conda的守护神:包兼容性测试全指南 在软件开发中,确保不同软件包之间的兼容性是维护项目稳定性的关键。Conda,作为广泛使用的包管理器和环境管理器,提供了强大的工具来测试包的兼容性。本文将深入探讨如何在Conda中使用包兼容性测…

使用 Java 监听和处理 POST 请求

各类学习教程下载合集 ​​https://pan.quark.cn/s/874c74e8040e​​ 在现代 Web 开发中,监听和处理 HTTP POST 请求是常见的任务之一。无论是构建 RESTful API 还是处理表单提交,Java 都提供了强大的工具和库来实现这一功能。本文将介绍如何使用 Java…

【JAVA学习笔记】找不到依赖项 ‘org.springframework.boot:spring-boot-starter-web:3.0.5‘

如果环境都是跟着教程配的话,并且上网搜了一圈询问gpt都没发现对应长得像的错误,那么试试**刷新一下Maven项目**,可能问题就自己解决了。如果这样解决不了再查到底是什么地方没有配置对。(我第一次遇到这个问题的时候搜了半天都不…

RHEL8.6配置yum仓库

记录通过Linux安装ISO挂载yum仓库,由于没有在线仓库只能挂载iso的软件仓库 [rootlocalhost /]# yum install libicu 正在更新 Subscription Management 软件仓库。 无法读取客户身份本系统尚未在权利服务器中注册。可使用 subscription-manager 进行注册。错误&…

遇到 chunk of umi not found 处理办法

1、删除 以下文件 (1)node_modules 其中快速删除node_modules方法可参考:rimraf快速删除node_modules方法-CSDN博客文章浏览阅读258次。rimraf快速删除node_modules方法https://blog.csdn.net/2401_85955297/article/details/140566245?spm…