欠拟合与过拟合

news2025/1/15 13:15:07

目录

1、相关概念

学习目标

欠拟合与过拟合

2、原因以及解决办法

欠拟合

过拟合

⭐正则化类别

Lasso

🔺Ridge

🍁Lasso和Ridge的区别

3、拓展

极大似然估计

最大后验估计

最小二乘法


🍃作者介绍:双非本科大三网络工程专业在读,阿里云专家博主,专注于Java领域学习,擅长web应用开发、数据结构和算法,初步涉猎Python人工智能开发。

🦅主页:@逐梦苍穹

📕回归与聚类算法系列

:概念简述

②:线性回归

🍔您的一键三连,是我创作的最大动力🌹

1、相关概念

学习目标

目标:

了解线性回归(不带正则化)的缺点

了解过拟合与欠拟合的原因以及解决方法

欠拟合与过拟合

简单来说,这二者的概念理解就是:

  • 过拟合(模型过于复杂):一个假设在训练数据上能够获得比其他假设更好的拟合, 但是在测试数据集上却不能很好地拟合数据,此时认为这个假设出现了过拟合的现象。
  • 欠拟合(模型过于简单):一个假设在训练数据上不能获得更好的拟合,并且在测试数据集上也不能很好地拟合数据,此时认为这个假设出现了欠拟合的现象。

欠拟合和过拟合是机器学习和深度学习中常见的两种模型性能问题,它们表示模型在训练数据上的表现存在问题。以下是关于这两种问题的详细解释:

欠拟合(Underfitting): 欠拟合指的是模型无法捕捉到训练数据中的真实关系,它对数据的拟合程度不足。欠拟合的主要特征包括:

  • 模型在训练数据和测试数据上的性能都较差,表现为较高的训练误差和测试误差。
  • 模型的复杂度较低,通常是因为模型选择不够复杂,如线性模型用于非线性数据。
  • 模型的拟合曲线通常会显示出拟合不足的特征,即模型不能很好地适应数据的变化。

导致欠拟合的原因可能包括:

  • 模型选择不当:选择了过于简单的模型,无法捕捉数据中的复杂关系。
  • 特征选择不当:未选择足够有信息量的特征,或者特征缺失。
  • 训练数据不足:训练数据量太小,无法代表整个数据分布。
  • 正则化过强:正则化项的系数过大,限制了模型的灵活性。

过拟合(Overfitting): 过拟合指的是模型在训练数据上表现得非常好,但在未见过的测试数据上表现不佳,它对训练数据过度拟合。

过拟合的主要特征包括:

  • 模型在训练数据上的性能很好,训练误差较低,但在测试数据上的性能较差,测试误差较高。
  • 模型的复杂度较高,通常是因为模型过于灵活,可以匹配数据的噪声。
  • 模型的拟合曲线可能会显示出对训练数据的过度拟合,即曲线波动较大。

导致过拟合的原因可能包括:

  • 模型复杂度过高:选择了过于复杂的模型,可以很好地拟合训练数据中的噪声。
  • 训练数据噪声:训练数据包含噪声或异常值,导致模型学到了错误的模式。
  • 训练数据量太小:对于复杂的模型,需要更多的训练数据来避免过拟合。
  • 缺乏正则化:没有使用正则化方法来控制模型的复杂度。

如何应对欠拟合和过拟合问题:

  • 欠拟合的解决方法: 可以尝试使用更复杂的模型,增加特征,收集更多的训练数据,或者减小正则化项的系数,以提高模型的拟合能力。
  • 过拟合的解决方法: 可以尝试使用更简单的模型,增加训练数据量,进行特征选择,增加正则化项的系数,或者使用交叉验证来调整超参数,以降低模型的复杂度。

综上所述,欠拟合和过拟合是模型训练过程中需要关注的常见问题。选择适当的模型复杂度、特征工程和正则化方法等都是帮助解决这些问题的关键步骤。

2原因以及解决办法

那么是什么原因导致模型复杂?

线性回归进行训练学习的时候变成模型会变得复杂,这里就对应前面再说的线性回归的两种关系,

非线性关系的数据,也就是存在很多无用的特征或者现实中的事物特征跟目标值的关系并不是简单的线性关系。

欠拟合

欠拟合是机器学习模型在训练数据上表现不佳的问题,通常由以下原因引起,以及相应的解决办法:

原因1:模型复杂度不足

  • 原因: 模型过于简单,无法捕捉数据中的复杂关系。
  • 解决办法:
    • 使用更复杂的模型,如多项式回归、决策树、随机森林或神经网络。
    • 增加模型的层数或神经元数量(对于神经网络)。
    • 使用非线性特征变换,如添加交互项或多项式特征。

原因2:特征选择不当

  • 原因: 未选择足够有信息量的特征或特征缺失。
  • 解决办法:
    • 进行特征工程,添加更多的相关特征。
    • 使用特征选择技术,如方差阈值、互信息、L1正则化等,以筛选最重要的特征。

原因3:数据量不足

  • 原因: 训练数据量太小,无法代表整个数据分布。
  • 解决办法: 收集更多的训练数据,以更好地捕捉数据分布的特征。

原因4:过多的正则化

  • 原因: 过多的正则化限制了模型的灵活性,导致欠拟合。
  • 解决办法:
    • 调整正则化超参数(如正则化系数)的值,减小其影响。
    • 考虑使用不同类型的正则化,如L1和L2正则化,以便更灵活地控制模型的复杂度。

原因5:模型选择不当

  • 原因: 选择了不适合数据的模型。
  • 解决办法:
    • 了解问题的性质,选择与问题匹配的模型类型。
    • 考虑使用集成学习方法,如随机森林或梯度提升,以改善模型性能。

总之,解决欠拟合问题通常涉及增加模型的复杂度、改进特征工程、增加数据量以及适当调整正则化等方法。在实践中,通常需要进行多次尝试和调整,以找到适合解决特定问题的方法。

过拟合

过拟合是机器学习模型在训练数据上表现良好,但在测试数据上表现不佳的问题,通常由以下原因引起,以及相应的解决办法:

原因1:模型复杂度过高

  • 原因: 模型过于复杂,试图捕捉训练数据中的每个细微变化和噪声。
  • 解决办法: 减小模型的复杂度,可以尝试以下方法:
    • 使用更简单的模型,如线性模型。
    • 减少模型的层数或神经元数量(对于神经网络)。
    • 增加正则化项的强度,如L1或L2正则化,以控制模型的复杂度。

原因2:训练数据中的噪声

  • 原因: 训练数据中包含噪声或异常值,模型试图适应这些噪声。
  • 解决办法: 清洗数据,去除噪声或异常值,以提高模型的鲁棒性

原因3:数据量不足

  • 原因: 训练数据量太小,无法支撑复杂模型的参数估计。
  • 解决办法: 收集更多的训练数据,以更好地捕捉数据分布的特征。

原因4:特征选择不当

  • 原因: 特征选择不当,导致模型使用了不相关或冗余的特征。
  • 解决办法: 改进特征选择,可以考虑以下方法:
    • 进行特征工程,选择最相关的特征。
    • 使用特征选择技术,如方差阈值、互信息、L1正则化等,以筛选最重要的特征。

原因5:模型选择不当

  • 原因: 选择了不适合问题的模型。
  • 解决办法: 选择适合问题的模型类型,可以通过以下方法:
    • 了解问题的性质,选择与问题匹配的模型类型。
    • 考虑使用集成学习方法,如随机森林或梯度提升,以改善模型性能。

原因6:过少的正则化

  • 原因: 正则化项的强度过小,未能限制模型的复杂度。
  • 解决办法: 增加正则化项的强度,可以考虑以下方法:
    • 调整正则化超参数(如正则化系数)的值,增加其影响。
    • 考虑使用不同类型的正则化,如L1和L2正则化,以提高模型的稳定性。

在学习的时候,数据提供的特征有些影响模型复杂度或者这个特征的数据点异常较多,所以算法在学习的时候尽量减少这个特征的影响(甚至删除某个特征的影响),这就是正则化

注:调整时候,算法并不知道某个特征影响,而是去调整参数得出优化的结果

总之,解决过拟合问题通常需要降低模型的复杂度、改进数据质量、增加数据量以及适当调整正则化等方法。在实践中,通常需要进行多次尝试和调整,以找到适合解决特定问题的方法。

正则化类别

在机器学习中,正则化技术用于防止过拟合,并通过在训练期间向模型参数添加约束或惩罚来提高模型的泛化。有几种类型的正则化方法,每种方法都有自己的方法和数学公式。

Lasso

L1正则化(Lasso正则化):
目的:通过在模型参数上添加绝对值惩罚来鼓励稀疏性。

Lasso正则化公式:L1\hspace{0.1cm}Regularization\hspace{0.1cm}Term=\lambda\sum_{i=1}^{n}|w_i|

w_i表示模型在索引处的参数i

\lambda是正则化强度,一个控制正则化量的超参数

效果:L1正则化倾向于迫使一些模型参数恰好变为零,从而有效地进行特征选择。

🔺Ridge

目的:支持模型的参数很小,但与L1不同的是,它并不强制它们完全为零。

(只是弱化特征的影响,不完全消除)

Ridge正则化公式:L2\hspace{0.1cm}Regularization\hspace{0.1cm}Term=\lambda\sum_{i=1}^{n}w_i^2

w_i表示模型在索引处的参数i

\lambda是正则化强度,一个控制正则化量的超参数

效果:L2正则化有助于防止参数值过大,使模型更稳定,不易出现过拟合。

回顾总损失函数:J(\theta)=(h_w(x_1)-y_1)^2 + (h_w(x_2)-y_2)^2+\cdots+(h_w(x_m)-y_m)^2

即:J(\theta)= \sum_{i=1}^{m}{(h_w(x_i)-y_i)^2}

将L2正则化项加到损失函数中:J(w)=\frac{1}{2m}\sum_{i=1}^{m}{(h_w(x_i)-y_i)^2} +\lambda\sum_{i=1}^{n}w_i^2

(其中,m为样本数,n为特征数)

大部分情况下,加了正则化的损失函数,缩放为 \frac{1}{2m}是为了方便梯度下降的导数计算,缩放常数不影响最终结果。

🍁Lasso和Ridge的区别

当选择 L1 正则化(Lasso)或 L2 正则化(Ridge)之间,取决于特定问题、数据集和您正在使用的模型的特征。L1 和 L2 正则化都有不同的用途,并且各自具有其优点和缺点。

以下是一些一般指南:

在实践中,通常有益于尝试使用 L1 和 L2 正则化,并通过交叉验证确定在您的特定问题上哪个正则化方法表现更好。此外,您还可以探索弹性网络正则化,它结合了 L1 和 L2 正则化,允许您在特征选择和参数收缩之间取得平衡。

3、拓展

线性回归的损失函数用最小二乘法,等价于当预测值与真实值的误差满足正态分布时的极大似然估计

岭回归的损失函数,是最小二乘法+L2范数,等价于当预测值与真实值的误差满足正态分布,且权重值也满足正态分布(先验分布)时的最大后验估计

LASSO的损失函数,是最小二乘法+L1范数,等价于等价于当预测值与真实值的误差满足正态分布,且且权重值满足拉普拉斯分布(先验分布)时的最大后验估计

极大似然估计

极大似然估计(Maximum Likelihood Estimation,简称MLE)是一种统计方法,用于估计概率分布的参数,使得观测数据在给定概率分布下出现的可能性最大化。MLE的核心思想是找到使观测数据出现的条件概率最大的参数值,这被视为最可能的参数估计。

具体来说,假设有一个统计模型,其中包含一个或多个参数,以及一组观测数据。MLE的目标是找到能够使观测数据在这个模型下出现的条件概率(似然函数)最大的参数值。

数学上,对于一个概率分布模型,我们可以表示为 P(x | θ),其中 x 是观测数据,θ 是待估计的参数。MLE的估计过程可以形式化为以下步骤:

  1. 构建似然函数:首先,根据模型的假设,计算观测数据的似然函数 L(θ | x),表示在给定参数 θ 下观测数据出现的概率。
  2. 最大化似然函数:寻找使似然函数 L(θ | x) 最大化的参数值 θ^,通常使用数学优化方法,如梯度下降或牛顿法。
  3. 得到估计值:最终得到的参数值 θ^ 被视为最大似然估计,它表示观测数据在模型下出现的可能性最大的参数值。

MLE在统计学和机器学习中广泛应用,它是参数估计的一种经典方法。它具有良好的性质,如一致性和渐近正态性,这使得它成为许多统计推断和机器学习算法的基础。无论是在回归分析、分类问题、聚类问题还是概率密度估计等领域,MLE都起着关键的作用,帮助我们从数据中获取模型参数的估计值。

最大后验估计

最大后验估计(Maximum A Posteriori Estimation,简称MAP估计)是一种参数估计方法,用于估计概率分布的参数,其目标是找到在给定观测数据的情况下,使后验概率最大化的参数值。与极大似然估计(Maximum Likelihood Estimation,MLE)类似,MAP估计也是基于数据来估计参数,但它引入了先验概率分布的信息,将先验信息与观测数据结合起来,得出更稳健的参数估计。

具体来说,假设有一个统计模型,其中包含一个或多个参数 θ 和一组观测数据 x。MAP估计的目标是找到在给定观测数据 x 的情况下,使后验概率 P(θ | x) 最大化的参数值 θ^。

数学上,MAP估计可以形式化为以下步骤:

  1. 构建似然函数:首先,根据模型的假设,计算观测数据的似然函数 P(x | θ),表示在给定参数 θ 下观测数据出现的概率。
  2. 引入先验分布:引入参数 θ 的先验概率分布 P(θ),它表示我们对参数的先验信念。不同的先验分布可以反映不同的先验知识或信念。
  3. 计算后验概率:根据贝叶斯定理,计算参数 θ 的后验概率分布,即 P(θ | x) ∝ P(x | θ) * P(θ),其中 ∝ 表示正比关系。
  4. 最大化后验概率:寻找使后验概率 P(θ | x) 最大化的参数值 θ^,通常使用数学优化方法来实现。
  5. 得到估计值:最终得到的参数值 θ^ 被视为最大后验估计,它是考虑了观测数据和先验信息的综合结果,对参数进行了估计。

MAP估计的优势在于它可以利用先验信息来稳定参数估计,特别是在数据量有限或数据噪声较大的情况下。不同的先验分布可以导致不同的MAP估计结果,因此选择合适的先验分布对于获得良好的估计结果非常重要。MAP估计在贝叶斯统计、贝叶斯机器学习和贝叶斯推断等领域中有广泛应用。

最小二乘法

最小二乘法(Least Squares Method)是一种用于拟合数据和估计参数的数学和统计方法。它的主要目标是找到一组模型参数,以最小化观测数据点与模型预测值之间的残差平方和,即观测数据与模型之间的差异的平方和。

最小二乘法通常用于解决回归问题,其中需要找到一个数学模型,该模型可以最好地拟合给定的数据点。回归问题的一般形式是:

y = f(x, θ) + ε

其中:

  • y 是观测数据(目标变量)。
  • x 是输入特征。
  • θ 是要估计的模型参数。
  • f(x, θ) 是模型的预测值。
  • ε 是观测误差,表示模型无法完美匹配真实数据的部分。

最小二乘法的步骤如下:

  1. 定义模型:首先,选择一个数学模型 f(x, θ),它将输入特征 x 映射到预测值。
  2. 定义损失函数:定义一个损失函数,通常是残差的平方和。损失函数的目标是衡量观测数据与模型预测值之间的差异。损失函数 = Σ(y_i - f(x_i, θ))^2其中 Σ 表示对所有数据点求和,y_i 是观测数据点,x_i 是对应的输入特征,f(x_i, θ) 是模型的预测值。
  3. 最小化损失函数:通过数学优化方法(通常是微分和求解)来找到使损失函数最小化的参数值 θ^。
  4. 得到估计值:参数值 θ^ 被视为最小二乘法的估计结果,它使观测数据与模型的拟合最佳。

最小二乘法在回归分析中广泛应用,它适用于线性回归、多项式回归以及其他形式的回归问题。它的优点包括简单易懂、数学基础牢固以及在很多情况下能够提供良好的估计结果。但需要注意,最小二乘法对异常值敏感,因此在处理可能包含异常值的数据时需要谨慎。

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

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

相关文章

xss-domcobble绕过XSSfilter

目录 DOM破坏的原理 例题 多层标签 HTMLCollection 一些常见的标签的关系 三层标签如何获取 例题 DOM破坏的原理 DOMClobber是一种攻击技术,它利用了DOM(文档对象模型)的特性来破坏或修改网页的结构和功能。 DOMClobber攻击通常发生…

NoSQL之redis高可用(主从复制、哨兵、集群)搭建

目录 一、redis集群的三种模式 1、主从复制 2、哨兵 3、集群 二、Redis的主从复制 1、主从复制的作用 2、主从复制流程 3、搭建Redis 主从复制 实验环境: 3.1 安装 Redis 3.2 修改 Redis 配置文件(Master节点操作) 3.3 配置两台…

YOLO目标检测——交通标志数据集+已标注voc和yolo格式标签下载分享

实际项目应用:交通安全监控、智能交通系统、自动驾驶和辅助驾驶、驾驶员辅助系统、交通规划和城市规划等等。数据集说明:YOLO交通标志检测数据集,真实场景的高质量图片数据,数据场景丰富,图片格式为jpg,分为…

【LeetCode-简单题】367. 有效的完全平方数

文章目录 题目方法一:二分查找 题目 方法一:二分查找 找 1 - num 之间的 mid, 开方是整数 就找得到 mid, 不是整数自然找不到mid class Solution { // 二分查找 ;找 1 - num 之间的mid 开方是整数 就找得到 不是…

pandas入门

Pandas 是在 Numpy 上的封装。 继承了 Numpy 的所有优点,但是这种封装有好有坏 我们对比一下两者创建的形式和效果 import pandas as pd import numpy as np anp.array([[1,2],[3,4]]) bpd.DataFrame({"a":[1,2],"b":[3,4]} ) print(a,"\…

IP175D参考资料和引脚图

特性 宽工作温度范围IP175DLF(0C至70C) IP175DLFI (-40C至85C)内置6个MAC和5个PHY 每个端口可配置为10base-t、100Base-TX 最多2K个MAC地址 支持自极性10Mbps 广播风暴防护 汽车MDI-MDIX 支持3个MIL/RMII接口Layer2-4多字段分类器支持8-MultiField输入支持交通政策支持…

【LeetCode-简单题】844. 比较含退格的字符串

文章目录 题目方法一:单指针方法二:双指针方法三:栈 题目 方法一:单指针 首先每次进入循环处理之前需要对第一个字符进行判断,若是退格符,直接删掉,结束此次循环fast从0开始,如果fa…

【Redis】Redis 的学习教程(八)之 BitMap、Geo、HyperLogLog

Redis 除了五种常见数据类型:String、List、Hash、Set、ZSet,还有一些不常用的数据类型,如:BitMap、Geo、HyperLogLog 等等,它们在各自的领域为大数据量的统计 1. BitMap BitMap 计算,可以应用于任何大数…

DVWA XSS 通关挑战

文章目录 XSS漏洞概述反射性lowMediumhigh 存储型lowMediumhigh XSS漏洞概述 ​ 跨站点脚本(Cross Site Scripting,XSS)是指客户端代码注入攻击,攻击者可以在合法网站或Web应用程序中执行恶意脚本。当wb应用程序在其生成的输出中使用未经验证或未编码的用户输入时&…

30 | 工欲善其事必先利其器:后端性能测试工具原理与行业常用工具简介

对性能测试的理解和认识: 后端性能测试和后端性能测试工具之间的关系是什么? 后端性能测试工具和 GUI 自动化测试工具最大的区别是什么? 后端性能测试工具的原理是什么? 后端性能测试中,性能测试…

@JsonDeserialize和@JsonSerialize注解的使用

JsonDeserialize注解介绍 JsonDeserialize:json反序列化注解,作用于setter()方法,将json数据反序列化为java对象。可以理解为用在处理接收的数据上。 使用场景 前端传递的参数与后端实际接收的参数不一致时,可以通过反序列化注…

innovus: 如何只place不优化?

我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧? 拾陆楼知识星球 一些ip从模拟转用数字去做,只需要place即可,不需要做任何优化,通常面积都很小,但std cell手摆太累了,工具提供如下命令&a…

Chrome 基于 Wappalyzer 查看网站所用的前端技术栈

1. 找到谷歌商店 https://chrome.google.com/webstore/search/wappalyzer?utm_sourceext_app_menu 2. 搜索 Wappalyzer 3. 添加至Chrome 4. 使用 插件 比如打开 https://www.bilibili.com/ 就可以看到其所以用的前端技术栈了

软件测试下的AI之路(2)

😏作者简介:博主是一位测试管理者,同时也是一名对外企业兼职讲师。 📡主页地址:【Austin_zhai】 🙆目的与景愿:旨在于能帮助更多的测试行业人员提升软硬技能,分享行业相关最新信息。…

打工人必装的5款黑科技软件,办公舒适度立刻提升数倍

分享打工人必装的5款黑科技软件,让你高效完成工作,办公舒适度立刻提升数倍。 DroidCam——手机充当电脑摄像头 DroidCam可以让你的手机充当电脑的摄像头,让手机拍摄到的画面实时投送到电脑屏幕上,也可以充当视频聊天的摄像头&…

55、基于 WebFlux 开发 WebSocKet

★ 基于Web Flux开发WebSocket 两步: (1)实现WebSocketHandler开发WebSocket处理类。 实现该接口时只需要实现Mono handle(WebSocketSession webSocketSession)方法即可。 (2)使用HandlerMapping和WebSocketHandler…

TypeScript:赋予JavaScript数据类型新的力量,提升编程效率!

🎬 岸边的风:个人主页 🔥 个人专栏 :《 VUE 》 《 javaScript 》 ⛺️ 生活的理想,就是为了理想的生活 ! ​ 📚 前言 TypeScript:扩展JavaScript数据类型,赋予编程更强大的表达能力&#xff01…

bs4库爬取小说工具

学习了爬取天气预报,今天尝试做个爬取小说工具,有时候网上看看小说休闲下,打算保存txt文本文件,方便离线阅读。 第一步:先确定目标网址 网上随便找了本小说,先找到小说目录页面。 网址首页:h…

c语言练习48:总结字符函数和字符串函数

总结字符函数和字符串函数 字符函数 1. 字符分类函数 C语⾔中有⼀系列的函数是专⻔做字符分类的,也就是⼀个字符是属于什么类型的字符的。 这些函数的使⽤都需要包含⼀个头⽂件是 ctype.h 2. 字符转换函数 字符串函数 . strlen的使⽤ •字符串以 \0 作为结束标…

Linux操作系统基础知识

目录 一、什么是Linux 二、如何有一个Linux环境 三、基本的 Linux 命令 1. pwd - 显示当前工作目录 2. ls - 列出文件和目录 3. cd - 切换目录 4. mkdir - 创建目录 5. rm - 删除文件或目录 6. cp - 复制文件或目录 7. mv - 移动文件或目录 8. touch - 创建空文件 9…