机器学习之欠拟合和过拟合(一)

1.欠拟合(underfitting)与过拟合(overfitting)

在机器学习中,我们的主要思想是通过对数据集的学习来生成我们的假设模型。在对数据集进行拟合的过程中,我们可能会遇到欠拟合和过拟合的问题。以身高预测的例子为例,这里给出7-18岁男生的身高标准(数据来源:7 岁~18 岁儿童青少年身高发育等级评价),如图1:

将中位数随年龄的变化绘制成散点图,如图2:

由图2中的散点可知,先开始身高随年龄几乎成一条直线关系,后来增长率逐渐下降。如果我们采用线性函数取拟合,这显然是不合理的(线性函数的增长率不会发生变化)。如果我们用一个多项式函数去拟合,虽然这个多项式可能会很复杂,但是我们总可能找到一个多项式函数使得该函数完美经过图中的散点,如图3:

现在,我们来看一下线性拟合(图3红线):年龄大于18岁以后,按照散点图的趋势,身高应该逐渐趋于稳定,但是线性拟合的结果是身高随年龄增长依旧保持很高的增长率。显然这并不是一种很好的拟合方式,对于这种情况,我们称之为欠拟合,即高偏差(high bias)。

接下来,我们来看一下“完美的多项式拟合”(图3蓝线):蓝线的损失函数为0,在回归问题中,我们求解参数矩阵的方法就是尽可能地让损失函数的值最小化。这是否意味着当损失函数为0时,这时我们的学习模型最好呢?并不是这样子的。在”完美的多项式拟合“当中,我们的假设函数通常情况下会非常复杂,一般会涉及到高次多项式,函数图像会非常扭曲。以五次多项式为例,即便我们的自变量之间的偏差数量级为10,但对应输出结果的偏差会达到\(10^5\)数量级。图3的例子可能还不明显,图4很好的说明了“完美拟合”的扭曲情况。对于这种为了最小化损失函数,而将假设函数“过度扭曲”的情况,我们称之为过拟合,即高方差(high variance)。

2.偏差(bias)和方差(variance)
2.1偏差和误差的概念

偏差(bias),是不同数据集在特定模型上预测值的期望与实际值之间的差值。如果平均预测值与实际值相差甚远,则偏差较高。高偏差导致算法无法正确表示输入和输出变量之间的相关关系。当模型具有较高的偏差时,则表示该模型过于简单,无法捕获数据的复杂性,因此无法拟合数据。

方差(variance),指的是不同数据集在特定模型上的预测值的方差。当模型在训练后的数据集上表现良好但在未训练的数据集(例如测试数据集或验证数据集)上表现不佳时,就会发生方差。 方差反映了预测值与实际值之间的分散程度。高方差会导致过度拟合,这表明该算法对训练数据中存在的随机噪声也进行了建模。当模型具有较高的方差时,该模型将变得非常复杂,并将“完美拟合”训练集的数据点。 当高方差模型遇到尚未学习的其他数据点时,就无法做出正确的预测。

图5显示了偏差和误差,其中蓝色点表示我们的预测值,红色点表示我们的真实值。可以看到,偏差越高,预测值离真实值越远;方差越高,预测值越分散。

2.2.用数学公式表示偏差和误差

我们用\(Y\)表示我们要预测的值(样本真实值),\(X\)表示我们的自变量。考虑到样本数据其实是采样,\(Y\)并不是真实值,假设真实模型是\(f\),则有这样的关系:\(Y=f(X)+\epsilon\),其中\(\epsilon\)表示噪音,服从均值为0的正态分布,即\(\epsilon\sim N(\mu,\sigma_\epsilon)\)。用\(\hat f\)来表示我们的模型(即拟合函数),则我们的预测值为\(\hat f(X)\),则在点\(x\)处的平方误差的期望为:

\[\begin{align}Err(x)& =E\left[(Y -\hat f(x))^2\right] = E\left[(\epsilon + f(x) -\hat f(x))^2\right]\\&=E[f(x)^2] + E[\hat f(x)^2] + E(\epsilon^2) -2E[f(x)]E[\hat f(x)]-2E(\epsilon)E[f(x)]-2E(\epsilon)E[\hat f(x)]\\& = f(x)^2+(E[\hat f(x)])^2 + Var[\hat f(x)] -2f(x)E[\hat f(x)] + Var[\epsilon] + E(\epsilon) \\& = \left(E[\hat{f}(x)]-f(x)\right)^2 + E\left[\left(\hat{f}(x)-E[\hat{f}(x)]\right)^2\right] +\sigma_e^2\\&= \mathrm{Bias}^2 + \mathrm{Variance} + \mathrm{Irreducible\ Error} \end{align}\]

注意:\(f(x),\hat f(x), \epsilon\)三者独立,且\(f(x)\)不是变量,是固定值。所以\(E[f(x)] = f(x),E[f(x)^2] = f(x)^2\)。

误差的期望值 = 预测值相对真实值的偏差的平方 + 模型预测值的方差 + 噪音的方差

上式中的第三项,为不可减少的误差,是真实模型和样本值的关系中的噪声项,任何模型都无法从根本上减少噪声项。 给定真实模型和无穷大数据进行校准,理论上可以将偏差项和方差项都减少到0。但是,在模型和有限数据不完善的现实情况下,需要在最小化偏差和最小化方差之间进行权衡 。

关于偏差和方差的更多内容可以参见:

偏差Bias和方差Variance--机器学习中的模型选择(中文)

Understanding the Bias-Variance Tradeoff(英文)

3.解决方法

模型的效果通常是:方差小,偏差小 > 方差小,偏差大 > 方差大,偏差小 > 方差大,偏差大。所以,我们尽量减少模型的偏差和方差。如果出现了欠拟合和过拟合的情况,我们应该怎么解决呢?

对于欠拟合而言,我们有如下解决方案:

  1. 增加新的特征,可以考虑加入进特征组合、高次特征,来增大假设空间
  2. 采用非线性模型,比如核SVM 、决策树、DNN等模型
  3. Boosting,Boosting 往往会有较小的 Bias,比如 Gradient Boosting 等
  4. 如果已正则化,尝试减少正则化程度\(\lambda\)

对于过拟合而言,我们有如下解决方案:

  1. 交叉检验,通过交叉检验得到较优的模型参数
  2. 特征选择,减少特征数或使用较少的特征组合,对于按区间离散化的特征,增大划分的区间
  3. 正则化,常用的有 L1、L2 正则
  4. 如果已正则化,尝试增大正则化程度\(\lambda\)
  5. 增加训练数据可以有限的避免过拟合
  6. Bagging,将多个弱学习器Bagging 一下效果会好很多,比如随机森林等

参考链接:

偏差Bias和方差Variance——机器学习中的模型选择

Understanding the Bias-Variance Tradeoff

机器学习防止欠拟合、过拟合方法

原文地址:https://www.cnblogs.com/liyier/p/11827657.html

时间: 2024-10-09 11:42:29

机器学习之欠拟合和过拟合(一)的相关文章

机器学习(ML)七之模型选择、欠拟合和过拟合

训练误差和泛化误差 需要区分训练误差(training error)和泛化误差(generalization error).前者指模型在训练数据集上表现出的误差,后者指模型在任意一个测试数据样本上表现出的误差的期望,并常常通过测试数据集上的误差来近似.计算训练误差和泛化误差可以使用之前介绍过的损失函数,例如线性回归用到的平方损失函数和softmax回归用到的交叉熵损失函数. 直观地解释训练误差和泛化误差这两个概念.训练误差可以认为是做往年高考试题(训练题)时的错误率,泛化误差则可以通过真正参加高

欠拟合和过拟合的一般解决方法

简单来说,欠拟合是指模型在训练集.验证集和测试集上均表现不佳的情况:过拟合是指模型在训练集上表现很好,到了验证和测试阶段就大不如意了,即模型的泛化能力很差.欠拟合和过拟合一直是机器学习训练中的难题,在进行模型训练的时候往往要对这二者进行权衡,使得模型不仅在训练集上表现良好,在验证集以及测试集上也要有出色的预测能力.下面对解决欠拟合和过拟合的一般方法作一总结,说明大致的处理方向,具体应用还得结合实际的任务.数据和算法模型等. 解决欠拟合(高偏差)的方法 1.模型复杂化 对同一个算法复杂化.例如回归

动手深度学习12- 模型选择,欠拟合和过拟合

模型选择.欠拟合和过拟合 训练误差和泛化误差 模型选择 K折交叉验证 欠拟合和过拟合 模型复杂度 训练数据集大小 多项式函数拟合实验 定义.训练和测试模型 欠拟合 过拟合 小结 模型选择.欠拟合和过拟合 前几节给予Fashion_MNIST数据集的实验中,我们评价了机器学习模型在训练集合测试集上的表现.通常得到的结果都是训练数据集上更准确时,它在测试集上表现不一定更好,这就涉及到了模型的选择以及拟合程度的选择. 训练误差和泛化误差 训练误差 是指模型在训练数据集上表现出来的误差 泛化误差 是指模

机器学习之拟合和过拟合问题

过拟合:当某个模型过度的学习训练数据中的细节和噪音,以至于模型在新的数据上表现很差,我们称过拟合发生了,通俗点就是:模型在训练集中测试的准确度远远高于在测试集中的准确度. 过拟合问题通常发生在变量特征过多的时候.这种情况下训练出的方程总是能很好的拟合训练数据,也就是说,我们的代价函数可能非常接近于0或者就为0,使其拟合只局限于训练样本中,无法很好预测其他新的样本. 欠拟合:在训练数据和未知数据上表现都很差 解决过拟合问题的方法主要有: 1. 减少特征数量,通过人工或者算法选择哪些特征有用保留,哪

机器学习过程中欠拟合和过拟合的诊断及解决方法

1.Diagnosing bias vs. variance 2.Regularization and bias/variance 3.Learning curves 4.Deciding what to try next 原文地址:https://www.cnblogs.com/CoolJayson/p/9704385.html

机器学习算法中的过拟合与欠拟合

在机器学习表现不佳的原因要么是过度拟合或欠拟合数据. 机器学习中的逼近目标函数过程 监督式机器学习通常理解为逼近一个目标函数(f)(f),此函数映射输入变量(X)到输出变量(Y). Y=f(X)Y=f(X) 这种特性描述可以用于定义分类和预测问题和机器学习算法的领域. 从训练数据中学习目标函数的过程中,我们必须考虑的问题是模型在预测新数据时的泛化性能.泛化好坏是很重要的,因为我们收集到的数据只是样本,其带有噪音并且是不完全的. 机器学习中的泛化 在In机器学习中,我们描述从训练数据学习目标函数的

用Python开始机器学习(3:数据拟合与广义线性回归)

机器学习中的预测问题通常分为2类:回归与分类. 简单的说回归就是预测数值,而分类是给数据打上标签归类. 本文讲述如何用Python进行基本的数据拟合,以及如何对拟合结果的误差进行分析. 本例中使用一个2次函数加上随机的扰动来生成500个点,然后尝试用1.2.100次方的多项式对该数据进行拟合.拟合的目的是使得根据训练数据能够拟合出一个多项式函数,这个函数能够很好的拟合现有数据,并且能对未知的数据进行预测. 代码如下: [python] view plain copy import matplot

Stanford机器学习---第三讲. 逻辑回归和过拟合问题的解决 logistic Regression & Regularization

原文地址:http://blog.csdn.net/abcjennifer/article/details/7716281 本栏目(Machine learning)包括单参数的线性回归.多参数的线性回归.Octave Tutorial.Logistic Regression.Regularization.神经网络.机器学习系统设计.SVM(Support Vector Machines 支持向量机).聚类.降维.异常检测.大规模机器学习等章节.所有内容均来自Standford公开课machin

【机器学习】(3)拟合度与最大似然估计

在大致了解了机器学习的算法分类(监督式.非监督式以及增强学习)和梯度算法后,今天我们来了解下拟合度和最大似然估计的相关问题. 一.最小二乘法的拟合度 监督式学习中一类典型的应用就是回归问题,基本的就是线性回归,即用一条直线去逼近训练集合.最小二乘法就是根据已有的训练集样本来确定拟合度最好的函数 曲线.但是由于选择一个什么样的曲线是人工决定的,而不同的曲线又具有不同的性质,从而导致不同函数模型使用最小二乘法的拟合度是不同的.以一个m个样本 的房屋价格和大小数据M为例,我们可以选择线性回归(用一条直