精确率(召回率)的权衡(Machine Learning研习十六)

精确率(召回率)的权衡

为了理解这种权衡,让我们看看 SGDClassifier如何做出分类决策。 对于每个实例,它根据决策函数计算分数。 如果该分数大于阈值,则将该实例分配给正类; 否则它会将其分配给负类。 图 3-4 显示了从左侧最低分数到右侧最高分数的几个数字。 假设决策阈值位于中心箭头(两个 5 之间):您会在该阈值右侧发现 4 个真阳性(实际为 5),以及 1 个假阳性(实际上为 6)。 因此,使用该阈值,精度为 80%(5 分之 4)。 但在 6 个实际的 5 中,分类器仅检测到 4 个,因此召回率为 67%(6 中的 4)。 如果提高阈值(将其移动到右侧的箭头),假阳性(6)会变成真阴性,从而提高精度(在本例中高达 100%),但一个真阳性会变成假阴性 ,将召回率降低至 50%。 相反,降低阈值会增加召回率并降低精确度。

在这里插入图片描述

Scikit-Learn 不允许您直接设置阈值,但它允许您访问它用于进行预测的决策分数。 您可以调用其decision_function()方法,而不是调用分类器的predict()方法,该方法返回每个实例的分数,然后使用您想要根据这些分数进行预测的任何阈值:

在这里插入图片描述

SGDClassifier 使用等于 0 的阈值,因此前面的代码返回与 Predict() 方法相同的结果(即 True)。 让我们提高门槛:

在这里插入图片描述

这证实了提高阈值会降低召回率。 该图像实际上代表的是 5,当阈值为 0 时分类器会检测到它,但当阈值增加到 3,000 时分类器会错过它。

y_scores = cross_val_predict(sgd_clf, X_train, y_train_5, cv=3,              method="decision_function")

有了这些分数,使用 precision_recall_curve() 函数计算所有可能阈值的精度和召回率(该函数添加最后精度 0 和最后召回率 1,对应于无限阈值):

from sklearn.metrics import precision_recall_curve

precisions, recalls, thresholds = precision_recall_curve(y_train_5, y_scores) 

最后,使用 Matplotlib将精度和召回率绘制为阈值的函数(见下图)。 让我们展示一下我们选择的阈值 3,000:

plt.plot(thresholds, precisions[:-1], "b--", label="Precision", linewidth=2) plt.plot(thresholds, recalls[:-1], "g-", label="Recall", linewidth=2) plt.vlines(threshold, 0, 1.0, "k", "dotted", label="threshold") [...]  # beautify the figure: add grid, legend, axis, labels, and circles plt.show()

在这里插入图片描述

在此阈值下,准确率接近 90%,召回率约为 50%。 选择良好的精度/召回率权衡的另一种方法是直接针对召回率绘制精度图,如图 3-6 所示(显示了相同的阈值):

plt.plot(recalls, precisions, linewidth=2, label="Precision/Recall curve") [...]  # beautify the figure: add labels, grid, legend, arrow, and text plt.show()

在这里插入图片描述

您可以看到,当召回率达到 80% 左右时,准确率确实开始急剧下降。 您可能希望在该下降之前选择精确率/召回率权衡,例如,召回率约为 60%。 但当然,选择取决于您的项目。

假设您决定以 90% 的精度为目标。 您可以使用第一个图来找到需要使用的阈值,但这不是很精确。 或者,您可以搜索可提供至少 90% 精度的最低阈值。 为此,您可以使用 NumPy数组的 argmax() 方法。 这将返回最大值的第一个索引,在本例中意味着第一个 True 值:

在这里插入图片描述

要进行预测(目前在训练集上),您可以运行以下代码,而不是调用分类器的 Predict() 方法:

y_train_pred_90 = (y_scores >= threshold_for_90_precision)

让我们检查这些预测的精确度和召回率:

在这里插入图片描述

太棒了,你有一个 90% 精度的分类器! 正如您所看到的,创建具有几乎任何您想要的精度的分类器相当容易:只需设置足够高的阈值,就可以了。 但是等等,不要这么快——如果召回率太低,高精度分类器就不是很有用! 对于许多应用程序来说,48% 的召回率根本就不够好。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于SpringBoot+Vue保密信息学科平台系统设计与实现(源码+部署说明+演示视频+源码介绍+lw)

您好,我是码农飞哥(wei158556),感谢您阅读本文,欢迎一键三连哦。💪🏻 1. Python基础专栏,基础知识一网打尽,9.9元买不了吃亏,买不了上当。 Python从入门到精通…

filezilla客户端的应用以及ftplftpwget的用法

filezilla的应用 用户的配置查看上一篇文章FTP3种用户的配置 进入filezilla软件测试 用yy用户登录发现可以上传下载创建删除 再用cc用户登录发现不能上传不能删除不能创建只能下载 ftp&lftp&wget客户端的应用 以命令行的方式连接ftp,一般只会用到上…

【HTTP完全注解】范围请求

范围请求 范围请求是HTTP的一种内容协商机制,该机制允许客户端只请求资源的部分内容。范围请求在传送大的媒体文件,或者与文件下载的断点续传功能搭配使用时非常有用。 范围请求的工作流程 范围请求通过在HTTP请求标头Range中表明需要请求的部分资源的…

Windows东方通下载及使用

把安装包都拖到桌面来,可以拖一个解压包进去 下载东方通可以不用配环境变量 双击安装包 下一步 点击接受 选择版本,都可以 选择安装路径 下一步 点击安装 改端口号 移到桌面 把安装包里面的文件拖进去 过期了,记得改时间 点击时间面板&…

【回顾练习】静态路由配置综合实验报告

一、分析要求 为R6设备配置公有IP地址,并确保只能进行IP地址配置,无法进行其他配置。为R1-R5设备分配私有IP地址。为R1、R2、R4配置两个环回地址,为R5、R6配置一个环回地址。在R3上配置DHCP服务,以供两台PC自动获取IP地址。使用动…

Vuex状态、数据持久化(vue2、vue3状态数据持久化)

简介:Vuex是一个仓库,是vue的状态管理工具,存放公共数据,任何组件都可以使用vuex里的公共数据。Vuex提供了插件系统,允许我们使用 vuex-persistedstate插件,将Vuex的状态持久化到本地存储中,解决…

如何安装配置Goland并使用固定公网地址SSH远程连接本地服务器

文章目录 1. 安装配置GoLand2. 服务器开启SSH服务3. GoLand本地服务器远程连接测试4. 安装cpolar内网穿透远程访问服务器端4.1 服务器端安装cpolar4.2 创建远程连接公网地址 5. 使用固定TCP地址远程开发 本文主要介绍使用GoLand通过SSH远程连接服务器,并结合cpolar内…

蓝桥杯--高精度加法--基础

import java.util.*; import java.math.*; public class BASIC30 {public static void main(String[] args) {//阶乘的运算,因为计算出来的数据会足够的大,所以这个地方使用阶乘Scanner scanner new Scanner(System.in);//只能将对应的字符串转化为BigI…

STL —— string(1)

目录 1. 模板 1.1 泛型编程 1.2 函数模板 1.2.1 函数模板概念 1.2.2 函数模板格式 1.2.3 函数模板的原理 1.2.4 显式实例化 1.2.5 模板参数的匹配原则 1.3 类模板 1.3.1 类模板定义格式 1.3.2 类模板的实例化 2. STL —— string类 2.1 STL 简介 2.2 标准库中的s…

Gold Effects

HDRP、URP、LWRP和标准支持 完全可定制的金币效果。几乎每个属性都是可调整的,您可以更改这些效果的颜色、渐变、噪波纹理和整体形状。支持HDRP、URP和LWRP,当然也支持标准渲染器。易于拖放设置,带有定制示例的演示场景。使用标准Unity Animator为箱子制作动画,因此您可以轻…

#鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行

3 月 19 日,#鸿蒙生态创新中心#揭幕仪式在深圳湾科技生态园举行。 现场,深圳市南山区人民政府副区长李志娜发布《2024 年南山区支持鸿蒙原生应用发展首批政策措施清单》,从加强鸿蒙原生应用供给能力、推动鸿蒙原生应用产业集聚、完善鸿蒙原生…

windows管理github代码

资料 windows SSH下载github

Windows抓取密码的四种方式其他各类密码抓取

对于Windows(不是域环境)我们有四种方法去抓取它的密码 在线读取SAM文件离线读取SAM文件在线读取Lsass进程离线读取Lsass进程 在这次的blog,我们还是用的mimkatz 目录 1.在线读取SAM文件 2.离线读取sam文件 3.在线读取lsass进程 4.离线…

如何与手机共享笔记本电脑的互联网?这里提供详细步骤

这篇文章介绍了如何通过将手机变成Wi-Fi热点来与手机共享笔记本电脑的互联网连接。 如何共享笔记本电脑的互联网连接 你可以通过Wi-Fi或有线共享笔记本电脑的数据连接,具体取决于你的设置。 Windows Windows允许你通过ICS共享你的互联网连接。ICS,或称互联网连接共享,是W…

如何使用 PDF 转换器完成 PDF 转 Word

如果您正在寻找能够轻松将 PDF 转换为 Word 的软件,那么奇客PDF转换器是一个不错的选择。下面这篇文章将指导您如何使用奇客PDF转换器将PDF文件转换为Word。 奇客PDF转换器也称为奇客PDF,是将 PDF 文件内容转换为 Word 文本格式的优秀工具。通过使用 PD…

eNSP实验一(静态)

目录 命名更改 子网划分 配置IP DHCP配置 配置静态路由 NET设置 Telnet及端口映射 命名更改 <Huawei>system-view Enter system view, return user view with CtrlZ. [Huawei]sysname R1 [R1] 1、R6为ISP&#xff0c;接口IP地址均为公有地址(12.0.0.0/24)&#…

运动想象 (MI) 迁移学习系列 (14) : EEGNet-Fine tuning

运动想象迁移学习系列:EEGNet-Fine tuning 0. 引言1. 主要贡献2. 提出的方法2.1 EEGNet框架2.2 微调 3. 实验结果3.1 各模型整体分类结果3.2 算法复杂度比较3.3 不同微调方法比较 4. 总结欢迎来稿 论文地址&#xff1a;https://www.nature.com/articles/s41598-021-99114-1#cit…

CAD建筑版2024 安装教程

CAD建筑版是一种专门用于建筑设计和绘图的CAD软件版本。它提供了专业的建筑设计工具和功能&#xff0c;帮助建筑师、设计师和工程师在建筑领域进行快速、准确和高效的设计工作。 CAD建筑版具备建筑相关的库和元素&#xff0c;用户可以方便地使用预定义的建筑符号和元素进行建筑…

大气污染扩散模型Calpuff技术应用

目前&#xff0c;大气污染仍为我国亟待解决的环境问题。为了弄清大气污染物排放后对周围环境的影响&#xff0c;需要了解污染物的扩散规律。Calpuff模型是一种三维非稳态拉格朗日扩散模型&#xff0c;可有效地处理非稳态&#xff08;如&#xff0c;熏烟、环流、地形和海岸等&am…

谷歌Gemma大模型部署记录

谷歌Gemma大模型部署记录 配置信息 1.系统&#xff1a;Ubuntu20 2.显卡&#xff1a;RTX3060 6G 一、安装Ollama 官网地址&#xff1a;https://ollama.com/download/linux 按照指令安装 curl -fsSL https://ollama.com/install.sh | sh二、运行模型 输入指令&#xff1a;…