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

机器学习之数学基础(七)~过拟合(over-fitting)和欠拟合(under-fitting)

目录

1. 过拟合与欠拟合

1.1 Preliminary concept

1.2 过拟合 over-fitting

1.3 欠拟合 under-fitting

1.4 案例解析:黑天鹅


1. 过拟合与欠拟合

1.1 Preliminary concept

误差

  • 经验误差:模型对训练集数据的误差。
  • 泛化误差:模型对测试集数据的误差。 

模型泛化能力

模型对训练集以外的预测能力称为模型的泛化能力,追求这种泛化能力是机器学习的目标。

1.2 过拟合 over-fitting

过拟合over-fitting: 是指模型在训练数据上表现非常好,但在测试数据或实际表现中表现较差。

原因:过拟合通常(对,就是还有少数情况是数据不足学错了)在模型过于复杂、学习的太多了-》将个体特征/局部特征作为整体特征的情况下出现。此时模型学习能力太强,以致于将训练集单个样本自身的特点都能捕捉到,并将其认为是“一般规律”,同样这种情况也会导致模型泛化能力下降

  • 模型复杂度高(使用了过多的参数)
  • 训练数据不足,导致模型学到数据中的噪声noise。
  • 训练数据中的局部特征对模型产生了过大影响。

图像:过拟合表现为输出结果的高方差

解决方法增加training dataset;简化模型

  •  增加数据:获取更多的训练数据,有助于模型学习到更一般化的模式。
  • 正则化:通过L1或L2正则化减少模型复杂度。
  • 简化模型:减少模型的参数或使用更简单的模型。
  • 交叉验证:使用交叉验证方法选择最合适的模型超参数。
  • early stop:在training过程中监控验证集误差,当误差开始增加时停止!

1.3 欠拟合 under-fitting

欠拟合under-fitting: 是指模型在训练集和测试集上都表现不佳。

原因:欠拟合通常因为模型过于简单、学习能力太弱!-》无法捕捉到数据的复杂性 此时由于模型学习能力不足,无法学习到数据集中的“一般规律”,因而导致模型泛化能力弱

  • 模型复杂度太低 ~学不进去
  • 特征不充分或特征选择不当。
  • 训练时间不足,模型未能充分学习。

图像:欠拟合主要表现为输出结果的高偏差

解决方法复杂化模型,增强学习能力

  • 增加模型复杂度:使用更复杂的模型(如增加神经网络层数或节点数)。
  • 特征工程:生成更多有用的特征或使用特征选择技术选择更重要的特征。
  • 增加训练时间:延长训练时间,使模型有足够的时间学习数据模式。
  • 调整超参数:优化模型的超参数设置,使其更好地拟合数据。 

1.4 案例解析:黑天鹅

案例1: 现在有一组天鹅的特征数据,然后对模型进行训练。模型通过学习后得知:有翅膀、嘴巴长的就是天鹅。然后,该模型对新数据进行预测。

结果:该模型将所有符合这两个特征的动物都预测为天鹅,比如鹦鹉、山鸡等,这就导致了误差的产生。

=》这就是过拟合情况,没学到。模型学习到的天鹅特征太少了,导致区分标准过于粗糙,从而导致模型不能准确地识别出天鹅。

案例2: 有了案例1的经验之后,我们又增加了一些用于训练的特征,然后对模型进行训练。模型这次学到的内容是:有翅膀、嘴巴长、脖子形状像2的就是天鹅。然后,该模型对新数据进行预测。

结果:当该模型再遇到鹦鹉、山鸡等会被案例1误判的动物时,案例2模型能正确区分它们。

=》这就是拟合状态。模型正确的学习到了足够的天鹅特征。

案例3: 这时模型学嗨了,不肯停止,一直持续学习,学到了很多内容:有翅膀、嘴巴长、脖子形状像2、白色等特征的就是天鹅。然后,该模型再对新数据进行预测。

结果:这时飞过来的黑天鹅被误判为不是天鹅,因为黑色从来没有出现过,这使得模型把颜色这种局部特征过度学习成了全局特征,从而产生了识别误差。

=》这就是过拟合,过犹不及,学多了。 模型学到的特征太过于依赖或太符合训练数据了。

 参考:

https://www.cnblogs.com/taoziTTW/p/15213790.html

机器学习之欠拟合、过拟合详解(附实例和对应解决办法)_过拟合 demo-CSDN博客

相关文章:

机器学习之数学基础(七)~过拟合(over-fitting)和欠拟合(under-fitting)

目录 1. 过拟合与欠拟合 1.1 Preliminary concept 1.2 过拟合 over-fitting 1.3 欠拟合 under-fitting 1.4 案例解析:黑天鹅 1. 过拟合与欠拟合 1.1 Preliminary concept 误差 经验误差:模型对训练集数据的误差。泛化误差:模型对测试…...

⭐最新版!SpringBoot正确集成PageHelper姿势,不再被误导!

GGBond🔈 CSDN的朋友们大家好哇,我是新来的Java练习生 CodeCodeBond! 什么是PageHelper? 这里给不知道的人儿说明一下~~ 知道的xdm可以跳过了! PageHelper顾名思义是一个 页面 帮手。也就是分页查询的一个好用的工具…...

解决:Xshell通过SSH协议连接Ubuntu服务器报“服务器发送了一个意外的数据包,received:3,expected:20”

下图所示: 日志也基本看不出来问题在哪,只是说断开了连接大概是验证失败。有幸在某论坛评论区找到了原因,是因为我的xshell版本太低了而服务器的ssh版本太高,高版本的ssh默认屏蔽了一部分不太安全的算法导致建立连接的时候验证失败…...

[学习笔记] 禹神:一小时快速上手Electron笔记,附代码

课程地址 禹神:一小时快速上手Electron,前端Electron开发教程_哔哩哔哩_bilibili 笔记地址 https://github.com/sui5yue6/my-electron-app 进程通信 桌面软件 跨平台的桌面应用程序 chromium nodejs native api 流程模型 main主进程 .js文件 node…...

Java stream操作流常用的方式

在Java中,Stream操作流是Java 8新引入的一个功能,它提供了很多强大的操作,方便我们进行集合的处理和操作。常用的Stream操作方式有: 1.过滤:使用filter()方法可以过滤掉集合中不符合条件的元素。 2.映射:…...

【C#】图形图像编程

实验目标和要求: 掌握C#图形绘制基本概念;掌握C#字体处理;能进行C#图形图像综合设计。 运行效果如下所示: 1.功能说明与核心代码 使用panel为画板,完成以下设计内容: 使用pen绘制基础图形;使…...

埃特巴什码加解密小程序

埃特巴什码加解密小程序 这几天在看CTF相关的课程,涉及到古典密码学和近代密码学还有现代密码学。 简单替换密码 Atbash Cipher 埃特巴什码(Atbash Cipher)其实可以视为下面要介绍的简单替换密码的特例,它使用字母表中的最后 一个字母代表第一个字母…...

Golang笔记:使用serial包进行串口通讯

文章目录 目的使用入门总结 目的 串口是非常常用的一种电脑与设备交互的接口。这篇文章将介绍golang中相关功能的使用。 本文使用的包为 :go.bug.st/serial https://pkg.go.dev/go.bug.st/serial https://github.com/bugst/go-serial 另外还有一些常见的包如&…...

EasyExcel 导出批注信息

1. 批注信息 package com.xxx.demo;import lombok.Getter;/*** This class represents the comment information associated with a specific cell in an Excel sheet.* The columnIndex field specifies the column number of the cell, and the comment field stores the te…...

HttpServletRequest・getContentLeng・getContentType区别

getContentLength(): 获取客户端发送到服务器的HTTP请求主体内容的字节数(长度) 如果请求没有正文内容(如GET),或者请求头中没有包含Content-Length字段,则该方法返回 -1 getContentType()&am…...

Matlab|【防骗帖】考虑时空相关性的风电功率预测误差建模与分析

目录 1 主要内容 2 部分程序 3 下载链接 1 主要内容 这个程序《考虑时空相关性的风电功率预测误差建模与分析》画的图片非常漂亮,和原文献基本一致,但是实际上内容并未实现出来,主要就是利用现有的风电预测的数据和结果做了相关的图&#…...

【Android面试八股文】说一说ListView卡顿的原因以及相对应的优化策略

文章目录 一、ListView卡顿的原因1.1 Item没有复用1.2 布局的层级过深1.3 数据绑定逻辑过多1.4 滑动时不必要的图片刷新1.5 频繁的notifyDataSetChanged二、优化策略2.1 使用 ViewHolder 进行视图复用2.2 优化布局结构2.3 优化数据绑定逻辑过多2.4 图片加载优化2.5 避免频繁调用…...

Kotlin 中的内联函数

1 inline 内联函数:消除 Lambda 带来的运行时开销。 举例来说: fun main() {val num1 100val num2 80val result num1AndNum2(num1, num2) { n1, n2 ->n1 n2} }fun num1AndNum2(num1: Int, num2: Int, operation: (Int, Int) -> Int): Int …...

KALI LINUX 开启ssh免登录服务及固定ip及

SSH以进行远程登录 在Kali Linux中启用SSH以进行远程登录,请按照以下步骤操作: 安装SSH服务:sudo apt update sudo apt install openssh-server 已安装可忽略 sudo systemctl start ssh 启动SSH服务 sudo systemctl enable ssh 确保SSH服务设置为开机启动: (可选)如…...

亮数据,一款新的低代码爬虫利器!

在当今数据驱动型时代,数据采集和分析能力算是个人和企业的核心竞争力。然而,手动采集数据耗时费力且效率低下,而且容易被网站封禁。 我之前使用过一个爬虫工具,亮数据(Bright Data) ,是一款低…...

配置OSPF认证(华为)

#交换设备 配置OSPF认证-基于华为路由器 OSPF(开放最短路径优先)是一种内部网关协议(IGP),用于在单一自治系统(AS)内决策路由。OSPF认证功能是路由器中的一项安全措施,它的主要用途…...

关于ip地址的网页无法访问navigator的gpu、媒体、蓝牙等设备的解决方法

在使用threejs的WebGPURenderer渲染器时,发现localhost以及127.0.0.1才能访问到navigator.gpu,直接使用ip会变成undefined,原因是为了用户的隐私安全,只能在安全的上下文中使用,非安全的上下文就会是undefined,安全上下…...

深入理解外观模式(Facade Pattern)及其实际应用

引言 在软件开发中,复杂的系统往往由多个子系统组成,这些子系统之间的交互可能非常复杂。外观模式(Facade Pattern)通过为这些子系统提供一个统一的接口,简化了它们的交互。本篇文章将详细介绍外观模式的概念、应用场…...

为什么永远不会有语言取代 C/C++?

每个 CPU 都带有一种称为 ISA(指令集架构)汇编的电路语言。ISA 程序集是一种硬件语言,由基本数据操作、数学计算和结构化编程(即 jmp)的操作组成。但是,为每个计算需求编写汇编代码无疑是耗时的&#xff0c…...

Python 全栈体系【四阶】(六十一)

第五章 深度学习 十三、自然语言处理(NLP) 5. NLP应用 5.2 文本情感分析 目标:利用训练数据集,对模型训练,从而实现对中文评论语句情感分析。情绪分为正面、负面两种 数据集:中文关于酒店的评论&#…...

centos 7 部署awstats 网站访问检测

一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats&#xff0…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...

Map相关知识

数据结构 二叉树 二叉树,顾名思义,每个节点最多有两个“叉”,也就是两个子节点,分别是左子 节点和右子节点。不过,二叉树并不要求每个节点都有两个子节点,有的节点只 有左子节点,有的节点只有…...

智能AI电话机器人系统的识别能力现状与发展水平

一、引言 随着人工智能技术的飞速发展,AI电话机器人系统已经从简单的自动应答工具演变为具备复杂交互能力的智能助手。这类系统结合了语音识别、自然语言处理、情感计算和机器学习等多项前沿技术,在客户服务、营销推广、信息查询等领域发挥着越来越重要…...

JavaScript 数据类型详解

JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...

在golang中如何将已安装的依赖降级处理,比如:将 go-ansible/v2@v2.2.0 更换为 go-ansible/@v1.1.7

在 Go 项目中降级 go-ansible 从 v2.2.0 到 v1.1.7 具体步骤: 第一步: 修改 go.mod 文件 // 原 v2 版本声明 require github.com/apenella/go-ansible/v2 v2.2.0 替换为: // 改为 v…...

Linux【5】-----编译和烧写Linux系统镜像(RK3568)

参考:讯为 1、文件系统 不同的文件系统组成了:debian、ubuntu、buildroot、qt等系统 每个文件系统的uboot和kernel是一样的 2、源码目录介绍 目录 3、正式编译 编译脚本build.sh 帮助内容如下: Available options: uboot …...

PCA笔记

✅ 问题本质:为什么让矩阵 TT 的行列式为 1? 这个问题通常出现在我们对数据做**线性变换(旋转/缩放)**的时候,比如在 PCA 中把数据从原始坐标系变换到主成分方向时。 📌 回顾一下背景 在 PCA 中&#xff…...

Spring Boot 中实现 HTTPS 加密通信及常见问题排查指南

Spring Boot 中实现 HTTPS 加密通信及常见问题排查指南 在金融行业安全审计中,未启用HTTPS的Web应用被列为高危漏洞。通过正确配置HTTPS,可将中间人攻击风险降低98%——本文将全面解析Spring Boot中HTTPS的实现方案与实战避坑指南。 一、HTTPS 核心原理与…...

比较数据迁移后MySQL数据库和PostgreSQL数据仓库中的表

设计一个MySQL数据库和PostgreSQL数据库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较两…...