机器学习算法的过拟合和欠拟合
机器学习性能差的原因要么是数据拟合过高,要么是数据拟合不足。
在这篇文章中,你将发现机器学习中的泛化概念,以及随之而来的过度匹配和不足匹配的问题。
我们开始吧。
机器学习中的目标函数逼近
有监督的机器学习最好理解为近似将输入变量(X)映射到输出变量(Y)的目标函数(F)。
Y=f(X)。
这种特征描述了分类和预测问题的范围,以及可用于解决这些问题的机器算法。
从训练数据中学习目标函数的一个重要考虑因素是模型对新数据的泛化程度。概括很重要,因为我们收集的数据只是一个样本,它是不完整的,而且有噪音。
机器学习中的泛化
在机器学习中,我们将从训练数据中学习目标函数的过程描述为归纳学习。
归纳是指从具体的例子中学习一般概念,这正是有监督机器学习问题要解决的问题。这与演绎不同,演绎是相反的,它寻求从一般规则中学习具体的概念。
泛化是指机器学习模型学习的概念在多大程度上适用于模型在学习时看不到的特定示例。
好的机器学习模型的目标是很好地从训练数据推广到问题领域的任何数据。这使我们能够对模型从未见过的数据做出未来的预测。
当我们谈论机器学习模型对新数据的学习和概括有多好时,我们在机器学习中使用了一个术语,即过度拟合和不足拟合。
过拟合和欠拟合是机器学习算法性能不佳的两个最大原因。
统计拟合
在统计学中,拟合指的是你对目标函数的逼近程度。
这是机器学习中使用的好术语,因为有监督的机器学习算法寻求近似给定输入变量的输出变量的未知底层映射函数。
统计数据通常描述拟合优度,它指的是用于估计函数的近似值与目标函数匹配程度的度量。
这些方法中的一些在机器学习中是有用的(例如,计算残差),但是这些技术中的一些假设我们知道我们正在逼近的目标函数的形式,这在机器学习中不是这样的。
如果我们知道目标函数的形式,我们将直接使用它进行预测,而不是试图从噪声训练数据的样本中学习近似值。
机器学习中的过拟合问题
过拟合是指对训练数据建模过好的模型。
当模型学习训练数据中的细节和噪声,以至于对模型在新数据上的性能产生负面影响时,就会发生过拟合。这意味着训练数据中的噪声或随机波动被该模型作为概念来拾取和学习。问题是,这些概念不适用于新数据,并对模型的泛化能力产生负面影响。
对于在学习目标函数时具有更大灵活性的非参数和非线性模型,过拟合的可能性更大。因此,许多非参数机器学习算法还包括限制和约束模型学习多少细节的参数或技术。
例如,决策树是一种非常灵活的非参数机器学习算法,并且容易受到训练数据过拟合的影响。这个问题可以通过在树学习之后进行修剪来解决,以便删除它所拾取的一些细节。
机器学习中的欠拟合问题
欠拟合是指既不能对训练数据建模,也不能推广到新数据的模型。
不适合的机器学习模型不是一个合适的模型,而且会很明显,因为它在训练数据上的性能会很差。
通常不讨论欠匹配,因为在给定良好的性能度量的情况下,它很容易被检测到。补救措施是继续前进,尝试替代的机器学习算法。尽管如此,它确实与过度贴身的问题形成了很好的对比。
非常适合机器学习
理想情况下,你希望在适配不足和适配过高之间的最佳位置选择模型。
这是目标,但在实践中很难做到。
为了理解这一目标,我们可以查看机器学习算法随着时间的推移的性能,因为它正在学习训练数据。我们可以将技能绘制在培训数据上,也可以将技能绘制在我们在培训过程中保留的测试数据集上。
随着时间的推移,随着算法的学习,模型在训练数据上的误差会下降,测试数据集上的误差也会下降。如果训练时间过长,训练数据集上的性能可能会继续下降,因为模型过度拟合,学习训练数据集中不相关的细节和噪声。同时,随着模型泛化能力的降低,测试集的误差开始再次上升。
最佳点是在测试数据集上的误差开始增加之前的点,在那里模型在训练数据集和不可见的测试数据集上都有很好的技能。
你可以使用你最喜欢的机器学习算法来执行此实验。这在实践中通常不是有用的技术,因为通过使用测试数据集上的技能选择训练的停止点,这意味着测试集不再是“看不见的”或独立的客观度量。关于该数据的一些知识(许多有用的知识)已经泄露到培训过程中。
在实践中,你还可以使用另外两种技术来帮助找到最佳位置:重采样方法和验证数据集。
如何限制过度拟合
过拟合和过低拟合都可能导致模型性能较差。但到目前为止,应用机器学习中最常见的问题是过度拟合。
过拟合是这样一个问题,因为机器学习算法对训练数据的评估不同于我们实际上最关心的评估,即算法在看不见的数据上的表现如何。
在评估机器学习算法以限制过拟合时,可以使用两种重要技术:
- 使用重采样技术来估计模型精度。
- 保留验证数据集。
最流行的重采样技术是k重交叉验证。它允许你在不同的训练数据子集上训练和测试模型k次,并在未知数据上建立机器学习模型的性能估计。
验证数据集只是训练数据的一个子集,你可以将其保留在机器学习算法中,直到项目结束。在训练数据集上选择并调整了机器学习算法之后,你可以在验证数据集上评估学习的模型,以最终客观地了解模型可能如何处理看不见的数据。
在应用机器学习中,使用交叉验证来估计未知数据的模型精度是一个黄金标准。如果你有数据,使用验证数据集也是一个很好的做法。
进一步阅读
本节列出了一些推荐资源,如果你希望了解更多关于机器学习中的泛化、超配和欠配的知识。
摘要
在这篇文章中,你发现机器学习是通过归纳的方法来解决问题的。
你了解到泛化是对模型学习的概念应用于新数据的程度的描述。最后,你了解了机器学习中的过拟合和欠拟合中的泛化术语:
- 过拟合:训练数据表现较好,对其他数据泛化能力较差。
- 欠拟合:训练数据的性能较差,对其他数据的泛化能力较差。