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

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

时间:2024-08-03 13:53:16浏览次数:10  
标签:1.4 训练 示例 模型 High 拟合 集上 数据

引言

在机器学习中,过拟合(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 正则化

向损失函数添加惩罚项,以限制模型复杂度,如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 总结

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

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

在这里插入图片描述

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

标签:1.4,训练,示例,模型,High,拟合,集上,数据
From: https://blog.csdn.net/m0_49243785/article/details/140889340

相关文章

  • 使用epoll编写TCP服务器示例
    #include<stdio.h>#include<stdlib.h>#include<string.h>#include<errno.h>#include<netinet/in.h>#include<sys/socket.h>#include<arpa/inet.h>#include<sys/epoll.h>#include<unistd.h>#include......
  • ORM之SqlSugar简单示例
    示例结构 下面给出示例代码,安装编码框架可扩展IDal接口定义namespaceORMRepository{///<summary>///数据库访问接口///</summary>///<typeparamname="T"></typeparam>publicinterfaceIDal<T>{///<summary&......
  • 白盒测试基础与实践:Python示例及流程图设计
    文章目录前言一、白盒测试是什么?主要特点常用方法优点缺点二、白盒测试常用技术语句覆盖判定覆盖条件覆盖判定/条件覆盖条件组合覆盖路径覆盖三、程序流程图设计四、测试用例设计1.基本路径法2.语句覆盖3.判断覆盖4.条件覆盖5.判断/条件覆盖6.条件组合覆盖总结......
  • 压力测试(caliper具体步骤+示例)
    Caliper压力测试(具体步骤+示例)一、Caliper压力测试指南1.环境要求(1)配置基本环境部署Caliper的计算机需要有外网权限;解决方法:#通常情况下,DNS服务器由你的网络配置提供。你可以查看当前的DNS设置:cat/etc/resolv.confoot@thy-virtual-machine:/home/thy/fisc......
  • 【算法】浅析线性规划算法【附完整示例】
    线性规划算法:优化资源配置,提升经济效益1.引言在现代社会,资源优化配置是提高经济效益的关键。线性规划算法作为一种优化工具,广泛应用于经济学、工程学、管理学等领域。本文将带你了解线性规划算法的原理、使用方法及其在实际应用中的意义,并通过代码示例和图示帮助大家更好......
  • 基于 STM32 的 NAS私有云盘搭建:集成LwIP 协议、HTTP/HTTPS、WEB前端技术栈(代码示例)
    项目概述在本项目中,我们将搭建一个基于STM32的NAS(网络附加存储)私盘,通过网络访问存储在外部SATA硬盘上的文件。该项目将使用STM32开发板、外接SATA硬盘、LwIP协议栈以及FATFS文件系统来实现文件的上传、下载和管理,用户可以通过简单的Web界面进行操作。系统设计......
  • 最小二乘法拟合空间直线
    一、空间直线方程1.1一般方程空间直线可以看成成两个平面的交线,设两个平面方程分别为\(A_1x+B_1y+C_1z+D_1=0\)和\(A_2x+B_2y+C_2z+D_2=0\),则直线\(l\)的一般方程可以表示为:\(\left\{\begin{matrix}A_1x+B_1y+C_1+D_1=0\\A_2x+B_2y+C_2+D_2......
  • hostapd 配置文件示例
    b模式:2.4G20MHz#接口和驱动程序设置interface=wlan0driver=nl80211ctrl_interface=/var/run/hostapd​#基本网络设置ssid=TestAPhw_mode=bchannel=11​#WPA身份验证设置wpa=2wpa_key_mgmt=WPA-PSKwpa_passphrase=12345678​#加密算法设置wpa_pairwise=CCMP......
  • SpringCloud示例项目,使用的SpringBoot3.3.2
    先启动nacos:https://www.cnblogs.com/xsj1989/p/18323636特别注意,SpringBoot、SpringCloud、Openfeign等依赖的版本必须相匹配,不然会报各种错。具体版本对应关系看官网。或者看:https://start.spring.io/actuator/info父pom<?xmlversion="1.0"encoding="UTF-8"?><projectxmln......
  • 搭建 STM32 网关服务器的全流程:集成嵌入式 C++、TCP/IP 通信、Flash 存储及 JWT 认证(
    引言随着物联网(IoT)技术的快速发展,基于STM32的服务器(类似网关)在数据采集、设备控制等方面的应用越来越广泛。本文将介绍搭建一个基于STM32的服务器所需的技术栈,以及详细的搭建步骤和代码示例。技术栈介绍在搭建基于STM32的服务器时,我们需要用到以下技术栈和组件:1.硬......