当前位置: 首页 > news >正文

ML 系列:机器学习和深度学习的深层次总结(08)—欠拟合、过拟合,正确拟合

ML 系列赛:第 9 天 — Under、Over 和 Good Fit

文章目录

  • 一、说明
  • 二、了解欠拟合、过拟合和实现正确的平衡
  • 三、关于泛化
  • 四、欠拟合
  • 五、过拟合
  • 六、适度拟合
  • 七、结论

一、说明

在有监督学习过程中,对于指定数据集进行训练,训练结果存在欠拟合、过拟合的情况,这两个情况都对模型的泛化是不利的,本篇对监督学习的训练的泛化问题进行解释。

二、了解欠拟合、过拟合和实现正确的平衡

在监督式学习中,数据集由输入和输出组成,监督式学习算法学习如何以最佳方式将输入示例映射到输出示例。这个函数是一个数学函数,也叫映射函数,监督学习算法试图找到最合适的函数,换句话说,监督学习被称为函数的近似。在监督学习问题中,我们假设输入和输出数据之间存在未知函数或关系,监督机器学习算法试图近似这个函数。虽然我们假设存在这样的映射函数,但我们对此一无所知,这就是为什么我们称它为近似值。

将输入映射到输出的 True 函数(实际函数)是未知的,通常称为目标(或目标)函数,学习过程的目标是仅使用可用数据(训练数据)来近似目标函数。如果我们知道目标函数,就不需要近似监督机器学习算法。

在机器学习中,从训练数据中学习目标函数被描述为归纳学习。归纳是指从具体示例中学习一般概念,是机器学习旨在解决的问题。同时,在演绎学习中,我们正在寻找从一般规则中学习特定概念。

三、关于泛化

泛化是一种抽象形式,其中特定实例的共同特征被表述为一般概念。机器学习中的泛化是指将模型在学习过程中学到的概念转移到学习过程中没有见过的例子中,机器学习模型的目标是将从训练过程中学到的知识泛化到模型从未见过的数据中。泛化在许多情况下与知识的传递直接相关,要传递的知识通常被称为抽象。

图 1 显示了泛化的一般概念。
在这里插入图片描述

图 1.泛化的一般形式
图 1 意味着我们希望算法对单个树不敏感,而是学习上图所示的树的抽象概念。

四、欠拟合

欠拟合是指我们的模型非常简单且几乎没有复杂性,可以近似一个可以在数据上训练并产生合适结果的函数。换句话说,我们关于数据分布的假设是错误的,而且过于简单化。例如,我们的数据需要 4 次多项式函数,但我们选择的模型是 1 次的函数。这种情况也称为高偏置。这意味着我们的数据太难了,模型无法正确预测,即使是在训练期间已经看到的样本上也是如此。

欠拟合是一个在训练和测试过程中都表现不佳的模型,并且它不能很好地泛化到新数据上。可能的解决方案包括:

• 选择功能更强大的模型,具有更多参数

• 为学习算法选择更好的特征(特征工程)

• 减少模型限制 (例如,减少 “正则化” 约束)

五、过拟合

过拟合也称为模型对于我们打算训练模型的数据来说过于复杂的情况。换句话说,我们关于数据分布的假设是错误的,而且非常复杂。例如,我们的数据是线性的,而我们选择的模型是高阶多项式。这种情况也称为高方差,这意味着算法无法做出准确的预测。

当模型不仅在训练数据上表现良好,而且在很大程度上学习了训练数据中的细节和噪声(对训练数据过度泛化),但模型在测试数据(模型看不到的数据)上的泛化性能非常弱时,就会发生过拟合。

换句话说,训练数据中的噪声或随机波动被模型选择并作为概念学习,问题是这些概念损害了模型的泛化能力。

当模型与数据的复杂度之比非常高时,就会发生过拟合,在可能的解决方案中可以提到以下内容:

• 简化模型并选择参数较少的模型 (例如,线性模型而不是高阶多项式)。

• 减少训练数据中的特征数量

• 限制模型并向模型添加限制,例如“正则化”技术

• 收集更多训练数据

• 减少训练数据中的噪声(例如,消除数据错误和去除异常值)

六、适度拟合

理想情况下,我们希望在过拟合和欠拟合之间的合适点选择一个模型,并且当训练数据和测试数据的误差最小时,调用适当的模型。

为了获得正确的观点,您可以同时查看模型在训练和测试数据上的加班性能。随着时间的推移,随着算法学会减少训练数据上的模型误差,测试数据集上的误差也会减少。如果我们长时间训练模型,模型在训练数据集上的性能可能会继续下降(因为模型过度拟合训练数据,训练数据集中不相关的细节和噪声学习),同时,随着模型的泛化能力下降,测试集误差再次开始增加。最佳点是在测试数据集上的误差开始增长之前,此时模型在训练数据集和测试数据集上都具有良好的技能。图 2 显示了根据误差图的过拟合、欠拟合和良好拟合的概念,其中横轴是指模型的复杂程度,纵轴是指误差量。此外,黄线表示测试数据中的错误,蓝线表示模型在训练过程中的错误。
在这里插入图片描述

图 2.根据误差图进行过拟合、欠拟合和正确拟合
图 3 显示了训练后过拟合、欠拟合和正确拟合的概念,以及如何预测模型。

在这里插入图片描述

图 3.训练后的过拟合、欠拟合和良好拟合以及如何预测模型

七、结论

在第 9 部分中,我们讨论了与模式泛化相关的三个重要概念 Underfit、Overfit 和 Good-fit;。在第 10 部分:机器学习系列:第 10 天 — 偏差方差权衡中,我们将定义并讨论偏差-方差权衡,它描述了模型的复杂性、预测的准确性以及它对以前未用于训练模型的数据进行预测的能力之间的关系。

相关文章:

ML 系列:机器学习和深度学习的深层次总结(08)—欠拟合、过拟合,正确拟合

ML 系列赛:第 9 天 — Under、Over 和 Good Fit 文章目录 一、说明二、了解欠拟合、过拟合和实现正确的平衡三、关于泛化四、欠拟合五、过拟合六、适度拟合七、结论 一、说明 在有监督学习过程中,对于指定数据集进行训练,训练结果存在欠拟合…...

Unity-物理系统-刚体加力

一 刚体自带添加力的方法 给刚体加力的目标就是 让其有一个速度 朝向某一个方向移动 1.首先应该获取刚体组件 rigidBody this.GetComponent<Rigidbody>(); 2.添加力 //相对世界坐标 //世界坐标系 Z轴正方向加了一个里 //加力过后 对象是否停止…...

深入探究PR:那些被忽视却超实用的视频剪辑工具

如果想要了解视频剪辑的工具&#xff0c;那一定听说过pr视频剪辑吧。如果你是新手其实我更推荐你从简单的视频剪辑工具入手&#xff0c;这次我就介绍一些简单好操作的视频剪辑工具来入门吧。 1.福晰视频剪辑 连接直达>>https://www.pdf365.cn/foxit-clip/ 这款工具操…...

Unity-麦克风输入相关

private AudioClip clip; 知识点一 获取设备麦克风信息 string[] strs Microphone.devices; for (int i 0; i < strs.Length; i) { print(strs[i]); } 知识点二 开始录制 参数一&#xff1a;设备名 传空使用默认设备 参数二&#xff1a;超过录…...

NLP--自然语言处理学习-day1

一.初步认识NLP 自然语言处理&#xff08;Natural Language Processing, NLP&#xff09;是计算机科学和人工智能&#xff08;AI&#xff09;的一个交叉领域&#xff0c;旨在使计算机能够理解、分析、生成和处理人类语言的能力。它结合了计算语言学、人工智能、机器学习和语言…...

ER论文阅读-Incomplete Multimodality-Diffused Emotion Recognition

基本介绍&#xff1a;NeurIPS, 2024, CCF-A 原文链接&#xff1a;https://proceedings.neurips.cc/paper_files/paper/2023/file/372cb7805eaccb2b7eed641271a30eec-Paper-Conference.pdf Abstract 人类多模态情感识别&#xff08;MER&#xff09;旨在通过多种异质模态&#x…...

Matlab自学笔记36:日期时间型的概念、分类和创建方法

1.概念 日期时间型&#xff08;Dates and Time&#xff09;数据具有灵活的显示格式和高达毫微秒的精度&#xff0c;并且可以处理时区、夏令时和平闰年等特殊因素 2.日期时间型数据有以下三种表示方式 &#xff08;1&#xff09;Datetime型&#xff0c;表示日期时间点&#x…...

Spring Boot自定义配置项

Spring Boot自定义配置项 配置文件 在application.properties文件添加需要的配置 比如&#xff1a; file.pathD:\\flies\\springboot\\ConfigurationProperties 注解 使用注解ConfigurationProperties将配置项和实体Bean关联起来&#xff0c;实现配置项和实体类字段的关联&…...

【C++篇】C++类与对象深度解析(六):全面剖析拷贝省略、RVO、NRVO优化策略

文章目录 C类与对象前言读者须知RVO 与 NRVO 的启用条件如何确认优化是否启用&#xff1f; 1. 按值传递与拷贝省略1.1 按值传递的概念1.2 示例代码1.3 按值传递的性能影响1.3.1 完全不优化 1.4 不同编译器下的优化表现1.4.1 Visual Studio 2019普通优化1.4.2 Visual Studio 202…...

什么时候用synchronized,什么时候用Reentrantlock

文章目录 使用 synchronized 的场景使用 ReentrantLock 的场景综合考虑 使用 synchronized 的场景 synchronized 是 Java 内置的同步机制&#xff0c;使用起来比较简单且常用于如下场景&#xff1a; 1、简单的同步逻辑&#xff1a;当你的同步逻辑非常简单&#xff0c;比如只需…...

[ffmpeg]音频格式转换

本文主要梳理 ffmpeg 中的音频格式转换。由于采集的音频数据和编码器支持的音频格式可能不一样&#xff0c;所以经常需要进行格式转换。 API 调用 常用 API struct SwrContext *swr_alloc(void); int swr_init(struct SwrContext *s); struct SwrContext *swr_alloc_set_opt…...

SSRF工具类-SsrfTool

为了帮助开发人员和安全研究人员检测和修复SSRF(Server-Side Request Forgery)漏洞,存在 多种工具。这里我将给出一个简单的工具类示例,这个工具类可以用来检查一个给定的URL是否可 能引发SSRF攻击。请注意,这个工具类主要用于教育目的,并不意味着它可以完全防止所有的…...

python集合运算介绍及示例代码

Python 中的集合&#xff08;set&#xff09;是一种数据类型&#xff0c;用于存储唯一元素的无序集合。集合支持多种运算&#xff0c;如并集、交集、差集和对称差集&#xff0c;方便执行数学上的集合操作。 1. 创建集合 可以使用大括号 {} 或者 set() 函数创建集合&#xff1…...

『功能项目』按钮的打开关闭功能【73】

本章项目成果展示 我们打开上一篇72QFrameWork制作背包界面UGUI的项目&#xff0c; 本章要做的事情是制作打开背包与修改器的打开关闭按钮 首先打开UGUICanvas复制button按钮 重命名为ReviseBtn 修改脚本&#xff1a;UIManager.cs 将修改器UI在UGUICanvas预制体中设置为隐藏 运…...

Linux 常用命令 - more 【分页显示文件内容】

简介 more 命令源自英文单词 more, 表示 “更多”&#xff0c;它是一个基于文本的程序&#xff0c;用于查看文本文件的内容。该命令会逐页显示文件内容&#xff0c;允许用户按页浏览大型文本文件。当用户完成当前页的阅读后&#xff0c;可以通过按键&#xff08;空格键或回车键…...

Kotlin Android 环境搭建

Kotlin Android 环境搭建 1. 引言 Kotlin 已成为 Android 开发的官方语言之一,因其简洁、表达性强和易于维护的特点而受到广大开发者的喜爱。在本教程中,我们将详细介绍如何在您的计算机上搭建 Kotlin Android 开发环境。 2. 系统要求 在开始搭建 Kotlin Android 开发环境…...

常见协议及其默认使用的端口号

在网络通信中&#xff0c;端口号用于标识特定的应用程序或服务。IANA&#xff08;Internet Assigned Numbers Authority&#xff09;负责分配和管理这些端口号。端口号分为三个范围&#xff1a; 熟知端口&#xff08;Well-Known Ports&#xff09;&#xff1a;0到1023&#xf…...

04-Docker常用命令

04-Docker常用命令 启动类命令 启动docker systemctl start docker停止docker systemctl stop docker重启docker systemctl restart docker查看docker状态 systemctl status docker开机启动docker systemctl enable docker帮助类命令 查看docker版本 docker version查…...

数字化转型中的供应链管理优化

在当今全球化和数字化的浪潮下&#xff0c;企业供应链管理面临着前所未有的挑战和机遇&#xff0c;企业在数字化转型过程中&#xff0c;如何优化供应链管理成为提升竞争力的关键。通过应用先进技术如RPA机器人流程自动化、大数据分析、物联网等&#xff0c;企业可以显著提高物流…...

【Python报错已解决】SyntaxError: invalid syntax

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 专栏介绍 在软件开发和日常使用中&#xff0c;BUG是不可避免的。本专栏致力于为广大开发者和技术爱好者提供一个关于BUG解决的经…...

浅谈 React Hooks

React Hooks 是 React 16.8 引入的一组 API&#xff0c;用于在函数组件中使用 state 和其他 React 特性&#xff08;例如生命周期方法、context 等&#xff09;。Hooks 通过简洁的函数接口&#xff0c;解决了状态与 UI 的高度解耦&#xff0c;通过函数式编程范式实现更灵活 Rea…...

shell脚本--常见案例

1、自动备份文件或目录 2、批量重命名文件 3、查找并删除指定名称的文件&#xff1a; 4、批量删除文件 5、查找并替换文件内容 6、批量创建文件 7、创建文件夹并移动文件 8、在文件夹中查找文件...

在HarmonyOS ArkTS ArkUI-X 5.0及以上版本中,手势开发全攻略:

在 HarmonyOS 应用开发中&#xff0c;手势交互是连接用户与设备的核心纽带。ArkTS 框架提供了丰富的手势处理能力&#xff0c;既支持点击、长按、拖拽等基础单一手势的精细控制&#xff0c;也能通过多种绑定策略解决父子组件的手势竞争问题。本文将结合官方开发文档&#xff0c…...

【入坑系列】TiDB 强制索引在不同库下不生效问题

文章目录 背景SQL 优化情况线上SQL运行情况分析怀疑1:执行计划绑定问题?尝试:SHOW WARNINGS 查看警告探索 TiDB 的 USE_INDEX 写法Hint 不生效问题排查解决参考背景 项目中使用 TiDB 数据库,并对 SQL 进行优化了,添加了强制索引。 UAT 环境已经生效,但 PROD 环境强制索…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容

基于 ​UniApp + WebSocket​实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配​微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...

【大模型RAG】Docker 一键部署 Milvus 完整攻略

本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装&#xff1b;只需暴露 19530&#xff08;gRPC&#xff09;与 9091&#xff08;HTTP/WebUI&#xff09;两个端口&#xff0c;即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

工程地质软件市场:发展现状、趋势与策略建议

一、引言 在工程建设领域&#xff0c;准确把握地质条件是确保项目顺利推进和安全运营的关键。工程地质软件作为处理、分析、模拟和展示工程地质数据的重要工具&#xff0c;正发挥着日益重要的作用。它凭借强大的数据处理能力、三维建模功能、空间分析工具和可视化展示手段&…...

视频字幕质量评估的大规模细粒度基准

大家读完觉得有帮助记得关注和点赞&#xff01;&#xff01;&#xff01; 摘要 视频字幕在文本到视频生成任务中起着至关重要的作用&#xff0c;因为它们的质量直接影响所生成视频的语义连贯性和视觉保真度。尽管大型视觉-语言模型&#xff08;VLMs&#xff09;在字幕生成方面…...