【机器学习】P20 模型的诊断 - 验证集

news2025/1/23 8:02:27

从本节博文开始,将会有几篇博文的内容探究的是如何对模型进行评估,模型是好是坏?模型能否拟合?

  • P20 (本篇)模型的诊断,验证集
  • P21 正则化
  • P22 过拟合和欠拟合的探究2,偏差与方差
  • P23 一个性能评估的基准
  • P24 一个机器学习开发的迭代,loop

模型的评估 - 验证集

  • 为什么需要评估模型
  • 什么是验证集
    • 验证集与测试集
  • 验证集与神经网络
    • 神经网络中的验证集有什么作用
    • 神经网络模型的选择
    • 如何使用验证集调整神经网络参数

本篇博文省流版:
验证集用来判断是否过拟合欠拟合,通常数据集分配为:60训练集+20验证集+20测试集,model.fit 训练中,验证集就像一个眼睛,会一直观察着模型的训练会不会导致过拟合与欠拟合的发生。


为什么需要评估模型

在机器学习中,我们使用模型来对数据进行预测和分类。模型的好坏通常是指模型的预测精度和泛化能力。

模型的预测精度是指模型在给定输入数据时产生正确输出的能力。通常使用不同的指标来衡量模型的预测精度,如准确率、召回率、F1分数等。

模型的泛化能力是指模型在未曾见过的数据上的表现能力。模型应该能够正确地预测未知数据的输出结果。如果模型只是在训练数据集上表现良好,但在未曾见过的数据上表现差,那么我们就称这个模型出现了过拟合。过拟合的模型会过度关注训练数据的细节,导致无法对新数据进行准确的预测。相反,如果模型在训练数据集和测试数据集上的表现都很差,那么我们就称这个模型出现了欠拟合。欠拟合的模型在训练数据集和测试数据集上都不能正确地进行预测。

不管是在回归模型上,还是分类模型任务中,都会存在着过拟合和欠拟合的现象:

在这里插入图片描述
在这里插入图片描述
因此,好的模型应该在训练数据集和测试数据集上都能表现良好,同时具有较高的预测精度和较好的泛化能力。而验证集,则是机器学习中常用的一种评估模型性能的方法。


什么是验证集

验证集,validation set,又称为交叉验证集,cross validation set,用于评估机器学习模型的性能的数据集。

在训练模型时,通常会将数据集划分为三个部分:训练集、验证集和测试集。训练集用于训练模型,测试集用于评估最终模型的性能,而验证集则用于调整模型的超参数和选择最佳的模型,如下图:

在这里插入图片描述
到这里往往会产生第一个疑惑:“有测试集,为什么还需要验证集?”

验证集与测试集

省流: 验证集和测试集都是用于评估模型,但是验证集是在模型训练中,测试集则是在模型训练后;

最简单的模型训练流程:

① 选择模型
② 训练调整参数
③ 梯度下降降低损失值
④ 重复 ②~③
⑤ 输出模型,测试集判断准确率

非省流:
验证集的作用在于帮助调整模型的超参数以及选择最佳模型。在训练过程中,验证集数据不参与模型参数的更新,而是用于评估当前模型的泛化能力。通过观察验证集上的性能指标,可以判断模型是否出现了过拟合或欠拟合等问题,并对模型进行相应的调整,以提高模型的性能。

测试集的作用是在模型训练和调整完成后,对最终模型的性能进行评估,用于模拟模型在实际应用中的性能。测试集应该是独立于训练集和验证集的数据集,而且在训练过程中不能使用测试集数据进行任何调整,否则测试集就失去了独立性,无法真实地评估模型的性能。

虽然可以通过测试集的数据来判断模型是否过拟合,但测试集的数据只能在训练结束后使用。而且测试集的数据不能用于调整模型,否则可能会导致测试集的偏差,影响最终评估结果的准确性。因此,在训练过程中,验证集的作用非常重要,它可以帮助调整模型的超参数以及选择最佳模型,从而避免过拟合等问题。

这时,第二个问题来了,验证集是如何参与到神经网络中的呢?这就延伸出两个问题:

  • 神经网络中的验证集有什么作用?
  • 如何使用验证集调整神经网络参数?

验证集与神经网络

神经网络中的验证集有什么作用

虽然验证集不能自动调整模型或直接影响模型的训练过程,但它在模型选择、调参和评估等方面仍然具有重要作用。

  • 模型的选择
    首先,验证集在模型选择方面的作用是帮助选择最佳的模型。在训练多个模型后,使用验证集来评估每个模型的性能,并选择性能最好的模型作为最终的模型。
  • 模型的参数调整
    其次,验证集在超参数调整方面的作用是帮助选择最佳的超参数组合。在训练同一模型的多个版本时,使用验证集来评估每个版本的性能,并选择超参数组合表现最佳的版本。
  • 模型的评估
    最后,验证集在模型评估方面的作用是提供对模型性能的独立评估。在使用测试集评估模型性能前,通常需要使用验证集来对模型进行调整和优化,以确保测试集的评估结果是准确的。

因此,虽然验证集不能直接影响模型的训练过程,但它在模型选择、调参和评估等方面仍然具有重要作用。

上文中提到模型的选择,那么什么是模型的选择,如何进行模型的选择?

神经网络模型的选择

选择模型1,还是模型2,还是模型3?
在这里插入图片描述
在神经网络中,模型的选择通常是指选择不同的神经网络结构,例如不同的层数、节点数、激活函数等,以满足不同的任务需求和数据特征。因此,在神经网络中,模型的选择是非常重要的。

虽然深度学习领域已经出现了很多经典的神经网络结构,例如 LeNet、AlexNet、VGG、ResNet、Inception 等,但在具体应用中,仍然需要根据具体任务和数据特征选择适合的神经网络结构。不同的神经网络结构可能具有不同的优缺点,例如一些结构可能具有更好的分类性能,而另一些结构可能更适合处理序列数据或图像数据等。

在进行模型选择时,一般需要考虑以下因素:

  • 任务需求: 根据任务的类型和需求,选择适合的神经网络结构。例如,对于图像分类任务,通常使用卷积神经网络(CNN)结构,而对于序列数据处理任务,通常使用循环神经网络(RNN)结构。

  • 数据特征: 根据数据的特征和规模,选择适合的神经网络结构。例如,对于图像数据,如果数据规模较小,可以选择浅层的 CNN 结构;如果数据规模较大,可以选择深层的 ResNet 结构。

  • 计算资源: 根据计算资源的限制和可用性,选择适合的神经网络结构。例如,对于计算资源较为有限的情况,可以选择轻量级的神经网络结构,如 MobileNet、ShuffleNet 等。

总之,在神经网络中,模型的选择仍然是非常重要的,并且需要根据具体的任务需求、数据特征和计算资源等因素来进行选择。


如何使用验证集调整神经网络参数

如何根据验证集调整超参数?可以通过观察验证集的损失函数曲线:

图中 J c v J_{cv} Jcv 为验证集损失函数曲线 J t r a i n J_{train} Jtrain 为训练集损失函数曲线

在这里插入图片描述
验证集的损失函数,会有一个从大到小,然后又变大的波动曲线,第一个从大到小是因为伴随着梯度下降,参数的调整,整个模型的拟合效果不断提升;而第二个从小到大是因为伴随着不断地调整,会出现过拟合的现象,导致验证集地损失值增大。


其实本章的内容,只需要知道有一个集合称为验证集,作用是在模型的拟合过程中,参与到参数的调整过程中,目的就是为了观察是否出现过拟合与欠拟合现象。本文缺少过拟合和欠拟合具体地示例与出现后如何解决,这个将在博文:

  • P22 过拟合和欠拟合的探究2,偏差与方差

中进行阐述。

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

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

相关文章

【内摹访谈】谈谈AI爆发前夜的B端设计

本文来自摹客产品设计团队(MPD)的设计专栏“内摹访谈”。专栏介绍:专栏名称来源于西方美学理论「内摹仿说」,意指审美活动与摹仿活动紧密相连,审美不只针对表象动作,其核心在于由物及我,从表观带…

MiniGPT-4开源了,史无前例的AI图片内容分析,甚至能用于逻辑验证码推理识别

MiniGPT-4: github库 https://github.com/Vision-CAIR/MiniGPT-4 在线测试网址 https://minigpt-4.github.io/ 案例一:分析图片内容 出结果较慢,建议图片小一点,并且提示文字尽可能简短 The man in the image is wearing a white tank…

kotlin协程flow retryWhen当功能函数加载失败后重试(3)

kotlin协程flow retryWhen当功能函数加载失败后重试&#xff08;3&#xff09; import kotlinx.coroutines.delay import kotlinx.coroutines.flow.* import kotlinx.coroutines.runBlocking import java.lang.NullPointerExceptionfun main(args: Array<String>) {runBl…

电脑卡顿反应慢怎么处理?电脑提速,4个方法!

案例&#xff1a;电脑卡顿反应慢怎么处理&#xff1f; 【快帮帮我&#xff01;我的电脑现在越用越卡了&#xff0c;有时候光是打开一个文件都要卡好几分钟&#xff0c;我真的太难了&#xff0c;有什么可以加速电脑反应速度的好方法吗&#xff1f;万分感谢&#xff01;】 随着…

产品知识沉淀

梁宁-产品思维30讲 看一个人或看一个产品&#xff0c;可以由表及里的五层来做观察和判断&#xff1a;感知层、角色层、资源层、能力圈和存在感 存在感之于人就好像生存之于动物一样&#xff0c;是触发情绪和推动行动的开关。 动物的状态和情绪&#xff0c;都是关乎它的生存需…

数据结构---八大排序

专栏&#xff1a;算法 个人主页&#xff1a;HaiFan. 本章内容为大家带来排序的相关内容&#xff0c;希望大家能多多支持。 八大排序 前言插入排序直接插入排序希尔排序(缩小增量排序) 选择排序选择排序堆排序 交换排序冒泡排序快速排序hoare版挖坑版前后指针法 归并排序 前言 …

Python中的@cache有什么妙用?

Python中的cache有什么妙用&#xff1f; 本文同步投给#创作纪念日#活动&#xff0c;2019年4月8日我在C站发了第一篇博文&#xff0c;至今200多篇了&#xff0c;感兴趣可以访问我的主页&#xff1a;小斌哥ge。 看到官方发的私信&#xff0c;是鼓励博主写一些感悟&#xff0c;由于…

【MySQL】数据库基础知识

1、数据库简介 1.1 什么是数据库 数据库其实就是"基于数据结构"实现出来的一类软件&#xff0c;这类软件可以用来对数据进行管理&#xff0c;管理也就是对数据进行增删查改等一些操作 为什么说数据库是基于数据结构实现出来的"一类软件"呢&#xff1f; 答&…

本地化部署大语言模型 ChatGLM

本地化部署大语言模型 ChatGLM 本地化部署大语言模型 ChatGLM前期筹备GitHub 基础包语言模型文件基础配置显存查看方法 Anaconda 模块Anaconda 环境创建根目录操作基础依赖加载transformers 和 protobuf 库加载Pytorch 源修改依赖库补充补充依赖 pypi 配置cchardet 依赖错误解决…

开放式耳机好用吗,盘点几款口碑不错的开放式耳机

​开放式耳机作为一种全新的耳机形态&#xff0c;已经成为了当前市场上非常火爆的一款产品。由于无需入耳佩戴&#xff0c;可以很好的避免了耳膜受到损伤&#xff0c;而且也能够让我们在佩戴眼镜时也能够正常使用。加上开放式耳机的音质和舒适度都要优于其他类型的耳机&#xf…

全球上线!ABB中国涡轮增压器分拆 – 数据清理阶段完成

ABB是数字行业的技术前沿者&#xff0c;拥有四项主营业务&#xff1a;电气化&#xff0c;工业自动化&#xff0c;运动控制以及机器人和离散自动化。ABB总部位于瑞士苏黎世&#xff0c;业务遍及100多个国家&#xff0c;拥有约105&#xff0c;000名员工。2021年&#xff0c;该公司…

dockerDesktop依赖wsl,及docker可视化推荐Portainer

也是今天无意中发现的Portainer 之前采用的1panel和宝塔做运维可视化 现在换成dockerPortainer 宝塔和1panel和portranier对比 宝塔广告太多&#xff0c;而且不适合深入了解运维技术 1panel个人感觉无广告颜值很高&#xff0c;但是还是有局限&#xff0c;不适合深入了解运维…

MAC 用 brew安装 mysql并且设置开机自启动

目录 一.安装 mysql 1.安装 mysql 2.启动 mysql 3.关闭 mysql 4.初次安装需要修改 root 密码 5.验证密码 二.设置开机启动 1.找到plist 文件 2.将启动文件 plist 复制到 LaunchAgents目录 3.验证 一.安装 mysql 1.安装 mysql 1.安装默认版可以直接执行安装命令 brew…

上岸美团,我的面经!

作者&#xff1a;阿秀 校招八股文学习网站&#xff1a;https://interviewguide.cn 这是阿秀的第「257」篇原创 小伙伴们大家好&#xff0c;我是阿秀。 欢迎今年参加秋招的小伙伴加入阿秀的学习圈&#xff0c;目前已经超过 2200 小伙伴加入&#xff01;去年认真准备和走下来的基…

GreenPlum (一) 初识

在开始了解GreenPlum之前&#xff0c;应该对这种产品的诞生有基本的了解&#xff0c;搭建一个基本的知识框架。对以下历史有基本了解之后应对下文术语进行基本阅读。 ​ 阅读目标: 阅读完成后需要对相关术语以及greenplum有基础理解。 文案基本互联网相关blog进行整体汇总&…

苹果跌倒检测新专利获得,结合苹果Find My可准确定位

苹果首款“跌倒检测”功能专利可追溯到 2018 年公示的 20190103007&#xff0c;后续又获得了至少 5 项相关专利。根据美国商标和专利局&#xff08;USPTO&#xff09;上周四公示的专利&#xff0c;苹果公司再次获得了一项“跌倒检测”功能专利。 苹果在报告中表示&#xff0c…

亚马逊云科技让你在云端发现企业穿越周期稳健发展的力量

2023年3月29日「哈佛商业评论-未来管理沙龙」活动盛大启幕&#xff0c;此次沙龙活动以穿越周期的力量为主题方向&#xff0c;以解码跨国企业持续增长源动力为主旨&#xff0c;希望为企业高层管理者们带来更多思考和启迪。 作为特邀嘉宾&#xff0c;亚马逊全球副总裁、亚马逊云…

内存的分区

目录 内存分区介绍 区域功能 内存分区运行前后的区别 运行之前&#xff08;代码区数据区未初始化数据区&#xff09; 运行之后&#xff08;代码区数据区未初始化数据区栈区堆区&#xff09; 缓冲区 缓冲区有什么用&#xff1f; 缓冲区的三种类型 缓冲区的刷新 内存分布图 栈与堆…

AI绘画——ControlNet扩展安装教程

目录 1.ControlNet安装 2.预处理模型安装 预处理模型&#xff08;annotator&#xff09;下载链接&#xff1a; 预处理模型安装地址&#xff1a; 3.ControlNet模型下载 Controlnet模型下载地址&#xff1a; Controlnet模型安装目录&#xff1a; 注&#xff1a;&…

KDZRS-40A三通道变压器直流电阻测试仪

一、产品概述 变压器绕组的直流电阻测试是变压器在交接、大修和改变分接开关后的试验项目。在通常情况下&#xff0c;用传统的方法&#xff08;电桥法和压降法&#xff09;测量变压器绕组以及大功率电感设备&#xff08;发电机&#xff09;的直流电阻是一项费时费工的工作。为了…