如何理解模型过拟合?理解模型的偏差&方差

101 阅读3分钟

概括性的来说,过拟合是指模型过于复杂,过度地记住了训练数据中的每一个细节和噪声,从而失去了对新数据的泛化能力。过拟合的模型在训练数据上表现很好,但在新数据上表现较差。

其中,细节是指训练数据中每个样本的具体信息,噪声则是与数据真实规律无关的随机或系统性干扰

让我们来举一个例子,假如我们有一组数据集是关于老鼠的体重身高的,体重轻的老鼠往往比较矮,体重重的老鼠往往比较高。

微信图片_20251009185816_430_4.png

在这里,我们假设老鼠的体重是输入特征(可精确测量),老鼠的身高是我们需要预测的目标(含随机误差),我们希望通过体重来预测身高的值。在理想情况下,可以通过精确的数学公式来得出,但现在我们并不知道公式,所以我们将使用两种机器学习方法来近似这个关系。

首先我们要做的第一件事是将数据分成两组,一组用于训练机器学习算法,另一组用于测试它们。蓝点是训练集,绿点是测试集。

image.png

训练阶段:

我们要用到的第一种方法是线性回归,也叫做最小二乘法。这种算法用一条直线来拟合训练集,但无论我们对训练集拟合得多么好,直线都永远无法捕捉到体重和身高之间的真实关系,因为直线并不能像真正的关系那样弯曲。这种由“模型自身结构太简单、无法匹配数据真实模式”带来的误差我们就把它叫做偏差。

再来看第二种方法(最典型的是多项式回归),这种方法可以在训练集上拟合一条弯曲的线,因为弯曲的线条可以在真实的体重和身高关系中处理弧线,所以它的偏差很小。在这里,我们能明显地看出第二种方法的拟合效果在训练阶段是明显高于第一种方法的。

image.png

测试阶段:

现在让我们来看看绿点测试集的效果,可以看出尽管曲线在拟合训练集方面做得很好,但它在拟合测试集方面做得很糟糕。在机器学习中,方差反映了模型对于不同数据集拟合结果的差异(这里训练集和测试集本质上都是数据集)。 也就是说第一种方法的偏差较大,但是方差较小;第二种方法的偏差较小,方差较大。

image.png

像第二种方法的情况可以很好地拟合训练集,但在测试集上效果不行,我们就说曲线过拟合了。 偏差大是导致欠拟合的直接原因,而方差大则是导致过拟合的直接原因。

要解决过拟合的问题,其实对不同的场景有不同的解决方案。像这里我们的数据量少并且曲线模型明显复杂于数据规律,这时候就可以通过增加数据和简化模型去针对性调整,缓解过拟合问题。

本篇文章其实讲的还是比较基础的内容,笔者也还是学生,还在不断学习中。若文章中有出现错误和表述不清楚的地方,还请各位手下留情,我会及时纠正的(๑•̀ω•́)ノ