欠拟合与过拟合

目录

1、相关概念

学习目标

欠拟合与过拟合

2、原因以及解决办法

欠拟合

过拟合

⭐正则化类别

Lasso

Ridge

Lasso和Ridge的区别

3、拓展

极大似然估计

最大后验估计

最小二乘法


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

主页:@逐梦苍穹

回归与聚类算法系列

:概念简述

②:线性回归

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

1、相关概念

学习目标

目标:

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

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

欠拟合与过拟合

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

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

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

欠拟合与过拟合_第1张图片

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

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

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

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

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

过拟合的主要特征包括:

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

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

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

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

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

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

2原因以及解决办法

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

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

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

欠拟合

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

原因1:模型复杂度不足

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

原因2:特征选择不当

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

原因3:数据量不足

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

原因4:过多的正则化

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

原因5:模型选择不当

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

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

过拟合

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

原因1:模型复杂度过高

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

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

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

原因3:数据量不足

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

原因4:特征选择不当

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

原因5:模型选择不当

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

原因6:过少的正则化

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

欠拟合与过拟合_第2张图片

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

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

欠拟合与过拟合_第3张图片

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

正则化类别

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

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 正则化都有不同的用途,并且各自具有其优点和缺点。

以下是一些一般指南:

欠拟合与过拟合_第4张图片

欠拟合与过拟合_第5张图片

在实践中,通常有益于尝试使用 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. 得到估计值:参数值 θ^ 被视为最小二乘法的估计结果,它使观测数据与模型的拟合最佳。

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

你可能感兴趣的:(人工智能,人工智能,机器学习,回归,聚类,python,欠拟合,过拟合)