机器学习第13天:模型性能评估指标
☁️主页 Nowl
🔥专栏《机器学习实战》 《机器学习》
📑君子坐而论道,少年起而行之
文章目录
交叉验证
保留交叉验证
k-折交叉验证
留一交叉验证
混淆矩阵
精度与召回率
介绍
精度
召回率
区别
使用代码
偏差与方差
介绍
区别
交叉验证
保留交叉验证
介绍
将数据集划分为两部分,训练集与测试集,这也是简单任务中常用的方法,其实没有很好地体现交叉验证的思想
使用代码
# 导入库
from sklearn.model_selection import train_test_split# 划分训练集与测试集,参数分别为总数据集,测试集的比例
train, test = train_test_split(data, test_size=0.2)
k-折交叉验证
介绍
将数据集划分为k个子集,每次采用k-1个子集作为训练集,剩下的一个作为测试集,然后再重新选择,使每一个子集都做一次测试集,所以整个过程总共训练k次,得到k组结果,最后将这k组结果取平均,得到最终结果,这就是交叉验证的思想
使用代码
# 导入库
from sklearn.model_selection import KFold
from sklearn.model_selection import cross_val_score# 设置K值,这里假设K=5
k_fold = KFold(n_splits=5, shuffle=True, random_state=42)# 初始化模型,这里以随机森林为例
model = RandomForestClassifier()# 使用K折交叉验证
scores = cross_val_score(model, X, y, cv=k_fold)
留一交叉验证
介绍
与k折验证思想一致,只是子集的数量和数据集的大小一样,往往在数据集较小的时候使用这种方法
混淆矩阵
介绍
在分类任务中,我们可以用混淆矩阵来判断模型的性能,混淆矩阵记录了A类被分为B类的次数,以下是一个动物识别任务的混淆矩阵,要知道cat被预测成了几次dog,那么就查看混淆矩阵的第1行第2列
使用代码
# 导入库
from sklearn.metrics import confusion_matrix# 打印混淆矩阵,参数为真实结果与预测结果
print(confusion_matrix(y, y_pred))
精度与召回率
介绍
要解释精度与召回率,我们先定义几个量
TP:模型预测为正且真实值为正的数量
FP:模型预测为正且真实值为负的数量
FN:模型预测为负且真实值为正的数量
精度
精度就是模型正确预测的正类在所有预测为正类中的比例
召回率
召回率就是模型正确预测的正类在所有正类中的比例
区别
可能还是有点混淆?其实精度高就是宁愿不预测,也不愿意预测错,召回率高就是宁愿预测错,也不愿意遗漏正类,我们具体来看两个场景
在地震预测中,我们是要提高召回率还是精度?显而易见,召回率,因为我们宁愿预测器错误地提醒我们,也不愿意当地震来临时它不报警
那么在食品检测中呢?当然要提高精度,因为我们宁愿健康的食品被误判为不合格,也不愿意有不合格的食品进入市场
召回率与精度两个指标不可兼得,我们要根据具体任务做出取舍
使用代码
# 导入库
from sklearn.metrics import precision_score, recall_score# 使用精度评估函数,参数是真实结果与预测结果
print(precision_score(y, y_pred))# 使用召回率评估函数,参数是真实结果与预测结果
print(recall_score(y, y_pred))
偏差与方差
介绍
偏差衡量一个模型预测结果和真实值的差距,偏差高往往代表模型欠拟合
方差衡量模型在不同数据集上预测的差异,方差高往往代表模型过拟合
区别
具有高偏差的模型对训练数据和新数据的表现都较差,因为它们未能捕捉到数据的复杂性。
具有高方差的模型在训练数据上可能表现得很好,但对新数据的泛化能力差,因为它们过于依赖于训练数据的细节。
结语
机器学习模型性能测量对于评估模型的质量、选择最佳模型、调整模型超参数以及在实际应用中预测新数据都具有重要意义。
-
评估模型质量: 通过性能测量,你可以了解模型在训练数据上的表现如何。这有助于判断模型是否足够复杂以捕捉数据中的模式,同时又不过度拟合训练数据。
-
选择最佳模型: 在比较不同模型时,性能测量是选择最佳模型的关键因素。你可以通过比较模型在相同任务上的性能指标来确定哪个模型更适合你的问题。
-
调整模型超参数: 通过观察模型在不同超参数设置下的性能,你可以调整超参数以提高模型的性能。性能测量可以指导你在超参数搜索空间中寻找最佳设置。
-
评估泛化能力: 模型在训练数据上表现良好并不一定意味着它在新数据上也能表现良好。性能测量帮助你评估模型的泛化能力,即模型对未见过的数据的预测能力。
-
支持业务决策: 在实际应用中,模型的性能直接关系到业务的决策。例如,在医疗领域,一个精确的疾病预测模型可能影响患者的治疗计划。
-
改进模型: 通过分析性能测量的结果,你可以识别模型的弱点,并采取相应的措施来改进模型,例如增加训练数据、特征工程、选择更合适的模型等。
觉得有用的话就订阅下本专栏吧,感谢阅读
相关文章:

机器学习第13天:模型性能评估指标
☁️主页 Nowl 🔥专栏《机器学习实战》 《机器学习》 📑君子坐而论道,少年起而行之 文章目录 交叉验证 保留交叉验证 k-折交叉验证 留一交叉验证 混淆矩阵 精度与召回率 介绍 精度 召回率 区别 使用代码 偏差与方差 介绍 区…...
Elasticsearch基础优化
分片策略 分片和副本得设计为ES提供支付分布式和故障转移得特性,但不意味着分片和副本是可以无限分配, 而且索引得分片完成分配后由于索引得路由机制,不能重新修改分片数(副本数可以动态修改) 一个分片得底层为一个l…...

【Amazon】通过直接连接的方式导入 KubeSphere集群至KubeSphere主容器平台
文章目录 一、设置主集群方式一:使用 Web 控制台方式二:使用 Kubectl命令 二、在主集群中设置代理服务地址方式一:使用 Web 控制台方式二:使用 Kubectl命令 三、登录控制台验证四、准备成员集群方式一:使用 Web 控制台…...

三数之和问题
给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i ! j、i ! k 且 j ! k ,同时还满足 nums[i] nums[j] nums[k] 0 。请 你返回所有和为 0 且不重复的三元组。 注意:答案中不可以包含重复的三元组。 示例 1&…...

【JavaEE】多线程 (2) --线程安全
目录 1. 观察线程不安全 2. 线程安全的概念 3. 线程不安全的原因 4. 解决之前的线程不安全问题 5. synchronized 关键字 - 监视器锁 monitor lock 5.1 synchronized 的特性 5.2 synchronized 使⽤⽰例 1. 观察线程不安全 package thread; public class ThreadDemo19 {p…...
关于点胶机那些事
总结一下点胶机技术要点: 1:不论多复杂的点胶机,简单点,可以简化为:1:运控 2:点胶,3:检测 运控的目的就是负责把针头移到面板对应的胶路上,点胶即就是排胶&…...

Python | CAP - 累积精度曲线分析案例
CAP通常被称为“累积精度曲线”,用于分类模型的性能评估。它有助于我们理解和总结分类模型的鲁棒性。为了直观地显示这一点,我们在图中绘制了三条不同的曲线: 一个随机的曲线(random)通过使用随机森林分类器获得的曲线…...
ubuntu22.04安装swagboot遇到的问题
一、基本情况 系统:u 22.04 python: 3.10 二、问题描述 swagboot官方提供的安装路径言简意赅:python3 -m pip install --user snagboot 当然安装python3和pip是基本常识,这里就不再赘述。 可是在安装的时候出现如下提示说 Failed buildin…...
python每日一题——8无重复字符的最长子串
题目 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。 示例 1: 输入: s “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: s “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串…...

【数据中台】开源项目(2)-Dbus数据总线
1 背景 企业中大量业务数据保存在各个业务系统数据库中,过去通常的同步数据的方法有很多种,比如: 各个数据使用方在业务低峰期各种抽取所需数据(缺点是存在重复抽取而且数据不一致) 由统一的数仓平台通过sqoop到各个…...

职场快速赢得信任
俗话说的好,有人的地方就有江湖。 国内不管是外企、私企、国企,职场环境都是变换莫测。 这里主要分享下怎么在职场中快速赢取信任。 1、找到让自己全面发展的方法 要知道,职场中话题是与他人交流的纽带,为了找到共同的话题&am…...

【SpringBoot3+Vue3】五【完】【实战篇】-前端(配合后端)
目录 一、环境准备 1、创建Vue工程 2、安装依赖 2.1 安装项目所需要的vue依赖 2.2 安装element-plus依赖 2.2.1 安装 2.2.2 项目导入element-plus 2.3 安装axios依赖 2.4 安装sass依赖 3、目录调整 3.1 删除部分默认目录下文件 3.1.1 src/components下自动生成的…...

[LaTex]arXiv投稿攻略——jpg/png转pdf
一、将图片复制进ppt,右键单击图片选择设置图片格式,获取图片高度和宽度 二、选择“设计-幻灯片大小-自定义幻灯片大小” 三、设置幻灯片大小为图片大小 四、 选择“最大化” 五、 检查幻灯片大小是否与图像大小一致 六、导出为PDF...

使用Pytorch从零开始构建GRU
门控循环单元 (GRU) 是 LSTM 的更新版本。让我们揭开这个网络的面纱并探索这两个兄弟姐妹之间的差异。 您听说过 GRU 吗?门控循环单元(GRU)是更流行的长短期记忆(LSTM)网络的弟弟,也是循环神经网络&#x…...

【尚跑】2023宝鸡马拉松安全完赛,顺利PB达成
1、赛事背景 千年宝地,一马当先!10月15日7时30分,吉利银河2023宝鸡马拉松在宝鸡市行政中心广场鸣枪开跑。 不可忽视的是,这次赛事的卓越之处不仅在于规模和参与人数,还在于其精心的策划和细致入微的组织。为了确保每位…...
Mac nginx安装,通过源码安装教程
第一部分 安装参考网址: https://blog.csdn.net/a1004084857/article/details/128512612; 以上步骤执行完,进入找到sbin目录,查看下面是不是有nginx可执行文件,如果有在当前sbin下执行./nginx,就会发现NGINX已启动 第…...
TypeScript中的枚举是什么?
在TypeScript中,枚举(Enum)是一种用于定义一组有命名的常量值的数据类型。它们可以提供更具可读性和可维护性的代码。 枚举的作用是为一组相关的值提供一个易于理解和使用的命名空间。它们可以用于代表一系列可能的选项、状态或标志…...
进程并发-信号量经典例题-面包师问题
1 题目描述 面包师有很多面包和蛋糕,由N个销售人员销售。每个顾客进店后先取一个号,并且等着叫号。当一个销售人员空闲下来,就叫下一个号。试用信号量的P、V操作设计该问题的同步算法,给出所用共享变量(如果需要&…...
c语言练习12周(11~15)
编写double fun(int a[],int n)函数,计算返回评分数组a中,n个评委打分,去掉一个最高分去掉一个最低分之后的平均分 题干编写double fun(int a[],int n)函数,计算返回评分数组a中,n个评委打分,去掉一…...
Java 实现视频转音频功能
在实际开发中,我们经常需要处理各种多媒体文件。本文将介绍如何使用 Java 语言实现将视频文件转换为音频文件的功能。我们将使用 FFmpeg 工具来进行视频转换操作,并通过 Java 的 ProcessBuilder 实现调用系统命令执行 FFmpeg 的功能。 准备工作 首先,我们需要确保系统中已安…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...

XCTF-web-easyupload
试了试php,php7,pht,phtml等,都没有用 尝试.user.ini 抓包修改将.user.ini修改为jpg图片 在上传一个123.jpg 用蚁剑连接,得到flag...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)
笔记整理:刘治强,浙江大学硕士生,研究方向为知识图谱表示学习,大语言模型 论文链接:http://arxiv.org/abs/2407.16127 发表会议:ISWC 2024 1. 动机 传统的知识图谱补全(KGC)模型通过…...

EtherNet/IP转DeviceNet协议网关详解
一,设备主要功能 疆鸿智能JH-DVN-EIP本产品是自主研发的一款EtherNet/IP从站功能的通讯网关。该产品主要功能是连接DeviceNet总线和EtherNet/IP网络,本网关连接到EtherNet/IP总线中做为从站使用,连接到DeviceNet总线中做为从站使用。 在自动…...
工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配
AI3D视觉的工业赋能者 迁移科技成立于2017年,作为行业领先的3D工业相机及视觉系统供应商,累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成,通过稳定、易用、高回报的AI3D视觉系统,为汽车、新能源、金属制造等行…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...
使用Matplotlib创建炫酷的3D散点图:数据可视化的新维度
文章目录 基础实现代码代码解析进阶技巧1. 自定义点的大小和颜色2. 添加图例和样式美化3. 真实数据应用示例实用技巧与注意事项完整示例(带样式)应用场景在数据科学和可视化领域,三维图形能为我们提供更丰富的数据洞察。本文将手把手教你如何使用Python的Matplotlib库创建引…...

LLMs 系列实操科普(1)
写在前面: 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容,原视频时长 ~130 分钟,以实操演示主流的一些 LLMs 的使用,由于涉及到实操,实际上并不适合以文字整理,但还是决定尽量整理一份笔…...

c++第七天 继承与派生2
这一篇文章主要内容是 派生类构造函数与析构函数 在派生类中重写基类成员 以及多继承 第一部分:派生类构造函数与析构函数 当创建一个派生类对象时,基类成员是如何初始化的? 1.当派生类对象创建的时候,基类成员的初始化顺序 …...