【机器学习】过拟合和欠拟合、高偏差(High Bias)和高方差(High Variance)的区别、过拟合和欠拟合的示例以及图表表示

news2024/10/1 23:37:58

引言

在机器学习中,过拟合(Overfitting)是指模型在训练数据上学习得太好,以至于它捕捉到了数据中的噪声和随机波动,而不是潜在的真实关系,这导致模型在新的、未见过的数据上表现不佳;欠拟合(Underfitting)是指模型在训练数据上未能捕捉到足够的信息或模式,导致模型在训练集和测试集上都表现不佳

文章目录

  • 引言
  • 一、过拟合
    • 1.1 过拟合的定义
    • 1.2 过拟合的表现
      • 1.2.1 在训练集上表现非常好
      • 1.2.2 在测试集或验证集上表现差
    • 1.3 过拟合的原因
      • 1.3.1 模型复杂度过高
      • 1.3.2 数据量不足
      • 1.3.3 噪声数据
      • 1.3.4 特征过多
    • 1.4 过拟合的解决方案
      • 1.4.1 简化模型
      • 1.4.2 增加数据
      • 1.4.3 数据增强
      • 1.4.4 正则化
      • 1.4.5 交叉验证
      • 1.4.6 早停法(Early Stopping)
      • 1.4.7 丢弃法(Dropout)
    • 1.5 防止过拟合的策略
      • 1.5.1 理解数据
      • 1.5.2 特征选择
      • 1.5.3 模型选择
  • 二、欠拟合
    • 2.1 欠拟合的定义
    • 2.2 欠拟合的表现
      • 2.2.1 在训练集上表现不佳
      • 2.2.2 在测试集或验证集上表现同样不佳
    • 2.3 欠拟合的原因
      • 2.3.1 模型复杂度过低
      • 2.3.2 特征数量不足
      • 2.3.3 特征质量差
      • 2.3.4 训练时间不足
      • 2.3.5 数据预处理不足
    • 2.4 欠拟合的解决方案
      • 2.4.1 增加模型复杂度
      • 2.4.1 增加特征数量
      • 2.4.1 特征工程
      • 2.4.1 减少正则化
      • 2.4.1 增加训练时间
      • 2.4.1 改进数据预处理
    • 2.5 防止欠拟合的策略
      • 2.5.1 模型选择
      • 2.5.2 特征选择
      • 2.5.3 交叉验证
      • 2.5.4模型评估
  • 三、高偏差(High Bias)和高方差(High Variance)的区别
    • 3.1 误差来源
    • 3.1 模型表现
    • 3.1 应对策略
  • 四、过拟合
    • 4.1 目标
    • 4.2 导入第三方库
    • 4.3 过拟合
    • 4.4 总结
  • 五、欠拟合、适度、过拟合的图表表示

一、过拟合

1.1 过拟合的定义

过拟合发生在模型对训练数据集的细节学习得太好,以至于它对训练数据集的特定特征变得过于敏感,而无法泛化到更广泛的数据集上

1.2 过拟合的表现

1.2.1 在训练集上表现非常好

模型的准确率或损失函数值非常低

1.2.2 在测试集或验证集上表现差

模型的准确率下降,损失函数值上升,说明模型泛化能力差

1.3 过拟合的原因

1.3.1 模型复杂度过高

模型有太多的参数或层次,可以完美地记住训练数据

1.3.2 数据量不足

相对于模型的复杂度,训练数据不够多,导致模型学习到了数据的随机性

1.3.3 噪声数据

训练数据中包含大量噪声或异常值,模型试图去拟合这些不具代表性的数据点

1.3.4 特征过多

特征数量远大于样本数量,导致模型可以轻易地找到数据中的模式,但这些模式可能并不具有泛化性

1.4 过拟合的解决方案

1.4.1 简化模型

减少模型的参数数量或层数,选择更简单的模型

1.4.2 增加数据

收集更多的训练数据,以帮助模型学习更普遍的模式

1.4.3 数据增强

通过旋转、缩放、裁剪等方式增加训练样本的多样性

1.4.4 正则化

向损失函数添加惩罚项,以限制模型复杂度,如L1(Lasso)和L2(Ridge)正则化

1.4.5 交叉验证

使用交叉验证来评估模型的泛化能力,并调整模型参数

1.4.6 早停法(Early Stopping)

在验证集上的性能不再提升时停止训练,以防止模型过度训练

1.4.7 丢弃法(Dropout)

在训练过程中随机丢弃网络中的一部分神经元,以减少模型对特定训练样本的依赖

1.5 防止过拟合的策略

1.5.1 理解数据

深入理解数据的特点和分布,避免模型学习到不重要的模式

1.5.2 特征选择

选择与目标变量相关性强、信息量大的特征

1.5.3 模型选择

根据问题的复杂度和数据的特点选择合适的模型。
过拟合是机器学习中的一个重要问题,因为它直接关系到模型在实际应用中的性能。通过上述方法,可以在一定程度上避免或减轻过拟合现象

二、欠拟合

2.1 欠拟合的定义

欠拟合发生在模型过于简单,无法捕捉到数据中的关键特征和关系时。这通常意味着模型的表达能力不足,无法很好地匹配数据的真实分布

2.2 欠拟合的表现

2.2.1 在训练集上表现不佳

模型的准确率低,损失函数值高

2.2.2 在测试集或验证集上表现同样不佳

模型的准确率与训练集相似,没有明显的提升或下降

2.3 欠拟合的原因

2.3.1 模型复杂度过低

模型可能太简单,无法捕捉数据中的复杂关系

2.3.2 特征数量不足

模型没有足够的特征来捕捉数据中的模式

2.3.3 特征质量差

所选特征可能不足以描述数据的内在结构

2.3.4 训练时间不足

模型可能没有足够的时间来学习数据中的模式

2.3.5 数据预处理不足

数据可能没有经过适当的清洗、标准化或转换

2.4 欠拟合的解决方案

2.4.1 增加模型复杂度

选择更复杂的模型或增加模型的参数数量

2.4.1 增加特征数量

引入更多的特征,以提供更多信息给模型学习

2.4.1 特征工程

通过特征提取、特征组合等方法改善特征的质量

2.4.1 减少正则化

如果模型使用了正则化,减少正则化强度,以便模型可以更好地拟合数据

2.4.1 增加训练时间

确保模型有足够的时间来学习数据中的模式

2.4.1 改进数据预处理

确保数据清洗、标准化和转换得当,以便模型能够更好地学习

2.5 防止欠拟合的策略

2.5.1 模型选择

选择适合问题复杂度的模型

2.5.2 特征选择

选择能够代表数据特征和信息的关键特征

2.5.3 交叉验证

使用交叉验证来评估模型的性能,并调整模型复杂度

2.5.4模型评估

使用适当的评估指标来监控模型在训练集和验证集上的表现

欠拟合与过拟合相对,都是机器学习中需要避免的问题。理想的情况是找到一个平衡点,即模型的复杂度既能很好地拟合训练数据,又能很好地泛化到新的数据上

三、高偏差(High Bias)和高方差(High Variance)的区别

在机器学习中,高偏差(High Bias)和高方差(High Variance)是模型性能不足的两种不同表现,它们通常与模型的复杂度和训练数据的表现有关

3.1 误差来源

高偏差的误差主要来自于模型的错误假设和简化,而高方差的误差主要来自于模型对训练数据的过度拟合

3.1 模型表现

高偏差的模型在训练集和测试集上表现都不好,而高方差的模型在训练集上表现好,但在测试集上表现差

3.1 应对策略

高偏差通常需要增加模型的复杂度,而高方差通常需要降低模型的复杂度

在实际应用中,通常需要找到偏差和方差的平衡点,即既不过于简单也不过于复杂的模型,以达到最佳的泛化能力。这通常通过交叉验证、模型选择和超参数调整等方法来实现

四、过拟合

4.1 目标

  • 了解过拟合可能出现的情况
  • 掌握一些解决方案

4.2 导入第三方库

%matplotlib widget
import matplotlib.pyplot as plt
from ipywidgets import Output
from plt_overfit import overfit_example, output
plt.style.use('./deeplearning.mplstyle')

4.3 过拟合

过拟合可能出现的情况。运行下面的代码以生成一个图表,可以通过它来探索过拟合

plt.close("all")
display(output)
ofit = overfit_example(False)

输出结果:
在这里插入图片描述

在上面的图表中,可以:

  • 在回归和分类示例之间切换
    分类示例:

在这里插入图片描述
回归示例:
在这里插入图片描述

  • 添加数据
  • 选择模型的度数
  • 将模型拟合到数据
    输出结果:
    在这里插入图片描述

这里有一些你应该尝试的事情:

  • 用度数 = 1 拟合数据;注意 ‘欠拟合’
    输出结果:
    在这里插入图片描述

  • 用度数 = 6 拟合数据;注意 ‘过拟合’
    输出结果:
    在这里插入图片描述

  • 调整度数以获得 ‘最佳拟合’(调整度数为2
    输出结果:
    在这里插入图片描述

  • 添加数据:
    – 极端示例可能会增加过拟合(假设它们是异常值)
    输出结果:
    在这里插入图片描述

– 普通示例可以减少过拟合
输出结果:
在这里插入图片描述

关于实施的说明:

  • ‘理想’ 曲线代表生成模型,噪声被添加到生成模型中以获得数据集
  • ‘拟合’ 不使用纯粹的梯度下降来提高速度。这些方法可以用于较小的数据集。

4.4 总结

  • 对过拟合的原因和解决方案有一些直观的理解

五、欠拟合、适度、过拟合的图表表示

在这里插入图片描述

如图所示,最左边是欠拟合的情况,右边是过拟合的情况,中间是比较好的模型

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

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

相关文章

从零开始:MySQL安装与配置完全指南

前言 哇,终于进入到令人激动的MySQL环节了 它可以说是你编程生涯中的最佳朋友,因为它总是能存储你的数据,从不说:“我忘记了你的信 息”。而且,它是免费的,不像一些昂贵的数据库,它从不让你的…

部署k8s+conatinerd环境

1、准备系统环境 禁用默认休眠(可选) 禁用:systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target启用:sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target …

随机对照临床试验(RCT)与历史对照临床试验(HCT)

临床试验是评估新药、新疗法或新技术有效性和安全性的关键手段。在临床试验中,如何选择对照组是影响试验结果准确性和可信度的重要因素。随机对照临床试验(Randomized Controlled Trial, RCT)和历史对照临床试验(Historical Contr…

苹果电脑玩的游戏有哪些 Mac电脑怎么玩Windows游戏 苹果电脑可以装模拟器玩游戏吗

苹果电脑虽然在游戏生态上可能不及Windows平台那么广泛,但其强大的硬件和macOS系统的优化,足以支持一系列高质量游戏的流畅运行。从策略游戏《文明VI》到动作冒险游戏《黑暗之魂III》,再到解谜游戏《传送门2》和角色扮演游戏《神界&#xff1…

世界顶尖哲学家排行榜前十名,全球公认十大最厉害的思想家之一

标题:智慧与爱心:塑造命运的双翼 正能量因有爱心, 负能量期待智慧…(升命学说) 在这个纷纭复杂的世界中,我们每个人都是自己命运的舵手。正如升命学说所揭示,正能量的培养离不开爱心的滋养&…

Springboot+Vue在线考试系统(优质版)-附项目源码与配套论文

1.1 开发背景 在线考试系统的设计与实现,首先需要对系统进行需求分析,明确系统的功能和性能要求。系统需要具备考试管理、题库管理、在线考试、自动阅卷等功能,同时还需要保证系统的安全性、稳定性和可扩展性。 在系统的架构设计方面&#…

【多线程-从零开始-贰】线程的构造方法和常见属性

Thread 的常见构造方法 在创建线程的时候,是可以给线程起名字的。默认为 Thread-0 、Thread-1… 不会影响线程执行效果,可以更好地进行管理 ThreadGroup -线程组 把多个线程放到一组里,方便统一的设置线程的一些属性不过现在很少用到&#…

【增减序列】

题目 思路 多次修改操作,为降低复杂度,采用差分。 差分数组的性质可以转化这个“所有数都一样”的目标,转化为”b[2] ~ b[n] 均为0“的目标。 为了使得方法数最少,要使得方法中不存在前后矛盾的部分,比如减了又加。…

【SpringIOC容器设计体系分析】

SpringIoc容器架构分析 BeanFactoryHierarchicalBeanFactoryListableBeanFactoryAutowireCapableBeanFactoryAbstractBeanFactoryAbstractAutowireCapableBeanFactoryDefaultListableBeanFactoryApplicationContextConfigurableApplicationContextApplicationContext除BeanFact…

nextjs 实现TodoList网页应用案例

参考: https://nextjs.org/ Next.js 是用于网络的一种 React 框架。一些世界上最大的公司在使用它,它能够借助 React 组件的力量让您创建高质量的网络应用程序。 1、创建项目: 另外注意:pages与app路由存在冲突,如果有…

UniApp手机滑块验证组件代码生成器

DIY可视化实现UniApp手机滑块验证组件,支持自定义背景图片、成功提示、错误提示、划动提示等。 手机滑块验证组件是一种广泛应用于手机应用、网页等场景的用户验证机制,其主要目的是通过用户的滑动操作来验证用户的真实性和操作意图,从而增强…

双目视觉标定的一般方法

1 双目立体相机 双目立体相机是由两个单目相机根据 特定的参数组合而成,工作时可将左右两相机捕捉到的二维图像信息转换到三维立体空间 中,进而通过系列转换变为所需要的三维空间坐标信息。 2 一般过程 双目立体相机标定步骤一般有以下几个步骤&#…

RabbitMQ应用场景及特性

RabbitMQ是一款开源的消息队列中间件,拥有非常好用的管理控制面板,类似使用navicat一样,简便的操纵数据库。 应用场景 一、流量削峰 在一些并发量较高的场景下,比如秒杀活动,抢票等,同一时间访问量急剧增…

C#数据类型 全局变量 类型转换方法(汇总)

1、C#和S7-1200PLC S7.NET通信 C#和S7-1200PLC S7.NET通信-CSDN博客文章浏览阅读98次。一步步建立一个C#项目(连续读取S7-1200PLC数据)_s7协议批量读取-CSDN博客这篇博客作为C#的基础系列,和大家分享如何一步步建立一个C#项目完成对S7-1200PLC数据的连续读取。首先…

【AI绘画】FLUX:这款新的人工智能图像生成器非常善于创造人手

FLUX.1 是 Stable Diffusion 的公开重量级继承者,可将文本转化为图像。 FLUX.1 dev 生成图像:“A beautiful queen of the universe holding up her hands, face in the background.”。 就在7月下旬,人工智能初创公司黑森林实验室&#xff…

从零入门CV图像竞赛(2024全球Deepfake攻防挑战赛)

从零入门CV图像竞赛(2024全球Deepfake攻防挑战赛) Deepfake是什么? Deepfake是一种利用深度学习技术,特别是生成对抗网络(GANs)来实现视频、音频等多媒体内容的伪造技术。这项技术可以实现对视频中人物的…

【2】Swift Dynamic Island开发

文章目录 先新建一个实时活动组件熟悉下实时活动的代码UI代码解析 灵动岛(Dynamic Island)和实时活动(Live Activities)是 iPhone 为了便于用户在退出APP时,仍然能随时关注进行中的活动、高频操作的组件。其中: 灵动岛…

快速体验LLaMA-Factory 私有化部署和高效微调Llama3模型(曙光超算互联网平台异构加速卡DCU)

序言 本文以 LLaMA-Factory 为例,在超算互联网平台SCNet上使用异构加速卡AI 显存64GB PCIE,私有化部署Llama3模型,并对 Llama3-8B-Instruct 模型进行 LoRA 微调、推理和合并。 快速体验基础版本,请参考另一篇博客:快…

栈和队列的区别

简介 栈和队列从定义上来讲,只有一个不同,就是栈是先进后出的,而队列是先进先出的,两者不的不同如下所图所示: 栈和队列的实现 从实现上来说,栈和队列都可以用数组或者链表实现,不过从实现难度和时空复杂…

WEB前端16-Vuex状态管理模式

Vue2-Vuex基础 1.Vuex基本概念 在复杂的前端应用程序中,状态管理变得至关重要。Vuex 是 Vue.js 官方提供的状态管理模式和库,它能帮助我们更好地管理应用程序的状态并实现组件间的通信。本文将介绍 Vuex 的基本概念、核心概念和实际应用。 什么是 Vue…