在机器学习中过度拟合术语
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在机器学习中过度拟合术语相关的知识,希望对你有一定的参考价值。
在第50页的Introduction to Machine Learning with Python一书中,作者正在对数据集执行线性回归并得到:
training set score: 0.67
test set score: 0.66
然后他们说他们“可能不合身,不会过度拟合”。
但是,当使用TensorFlow的Basic Classification Tutorial时,他们使用带有神经网络的MNIST Fashion数据集并得到:
training set score: 0.892
test set score: 0.876
然后他们陈述以下内容
“事实证明,测试数据集的准确性略低于训练数据集的准确度。训练精度和测试精度之间的差距是过度拟合的一个例子。过度拟合是指机器学习模型在新数据上的表现比在训练数据上表现更差。“
我认为从TensorFlow网站获取的报价是正确的,或者它们都是正确的,我不完全理解过度拟合。
Over- and under-fitting
你可以做的最适合你的训练集上有100%
的准确度。这意味着您的模型学会了预测之前已经看到过的输入。如果您遇到这种情况,您的测试集可能会表现很差。
您可以通过以下方式检测过度拟合:
- 训练集的高精度
- 训练和测试集之间存在很大差距
您可以通过以下方式检测欠配合:
- 训练集的准确度低(无论测试集的性能如何)
Examples:
1)
training set score: 0.67
test set score: 0.66
此示例在训练集上得分较低。因此,不合适似乎是一个公平的假设。
2)
training set score: 0.892
test set score: 0.876
这个是解释。训练集上的分数非常高,并且在测试集方面存在差距。
如果两组中的例子非常相似,那么我会说有一些过度拟合。但是,如果两组完全不同(例如来自不同的来源),那么结果可以被认为是可接受的。
当训练和测试精度都很低时,就会发生欠拟合。这表示您的模型存在系统性问题,即数据更适合多项式模型,但您使用的是线性模型。因此,训练和测试的准确度约为66%,因为它们都非常低。通常,两组上的高误差表示不合适。
当您在训练中具有相对较高的准确度时会发生过度拟合,但在测试时会降低。这表示您的模型过于适合您的训练数据,并且不能很好地概括为其他数据。通常,训练时的低误差和测试中的较高误差表明过度拟合。
一般来说,构建一个模型非常罕见,它会在训练和验证(或测试或保持,无论你想要什么称之为)集上显示相同的性能。因此,训练和验证集之间的差距将(几乎)始终存在。您将经常看到基于间隙的过度拟合的定义,但在实践中它不适用,因为它不是定量的。这里更一般的概念是“偏差 - 方差权衡”,您可能想要谷歌。相关问题是差距有多大,性能有多好以及验证集的性能如何随着模型的复杂性而变化。
我发现维基百科的这个数字很有启发性:https://en.wikipedia.org/wiki/Overfitting#/media/File:Overfitting_svg.svg。 x轴是NN或GBM的训练迭代次数(时期),但您也可以将其视为模型复杂性参数,例如:多项式模型中包含的幂数。如您所见,培训和验证样本的性能之间总是存在差距。但选择不过度匹配的模型的关键是选择训练样本(=偏差)的表现与验证样本的表现之间的最佳权衡(训练和验证样本的表现之间的差异=方差)。
以上是关于在机器学习中过度拟合术语的主要内容,如果未能解决你的问题,请参考以下文章