机器学习中的过度拟合术语
Posted
技术标签:
【中文标题】机器学习中的过度拟合术语【英文标题】:Overfitting terminology in Machine Learning 【发布时间】:2019-01-06 00:58:30 【问题描述】:在第 50 页的 Introduction to Machine Learning with Python 书中,作者正在对数据集执行线性回归并得到:
training set score: 0.67
test set score: 0.66
然后他们说他们“可能欠拟合,而不是过拟合”。
但是,当使用 TensorFlow 的 Basic Classification Tutorial 时,他们使用的是带有神经网络的 MNIST 时尚数据集并得到:
training set score: 0.892
test set score: 0.876
然后他们陈述以下内容
“事实证明,测试数据集的准确率略低于训练数据集的准确率。训练准确率和测试准确率之间的这种差距就是过拟合的一个例子。过度拟合是指机器学习模型在新数据上的表现比在训练数据上的表现更差。”
我相信从 TensorFlow 网站上引用的引用是正确的,或者它们都是正确的,我不完全理解过度拟合。
【问题讨论】:
由于这个问题本身不是关于编程的,我宁愿在stats.stackexchange.com问它 有没有办法把它移过来? 或datascience.stackexchange.com 【参考方案1】:当训练和测试的准确率都很低时,就会出现欠拟合。这表示您的模型存在系统性问题,即数据更适合多项式模型,但您使用的是线性模型。因此,训练和测试的大约 66% 的准确度被认为是欠拟合,因为它们都非常低。一般来说,两组的高误差表明拟合不足。
当您的训练准确度相对较高但测试准确度较低时,就会发生过度拟合。这表明您的模型与您的训练数据过于匹配,并且不能很好地推广到其他数据。一般来说,训练时的低误差和测试时较高的误差表明过度拟合。
【讨论】:
感谢您的回答,但是您会说从书中摘录的引文不正确吗? @G.LC 我认为说它不合适是不正确的。两组得分如此之差的事实掩盖了它们相差 1% 的事实。可能有更适合数据的模型【参考方案2】:一般来说,极少构建一个模型,它会在训练和验证(或测试,或坚持,无论你想怎么称呼它)集上显示相同的性能。因此,训练集和验证集之间的差距将(几乎)一直存在。您会经常看到基于差距的过度拟合的定义,但实际上它不适用,因为它不是定量的。这里更一般的概念是“偏差-方差权衡”,您可能想在谷歌上搜索一下。相关问题是差距有多大,性能有多好,以及验证集的性能如何随着模型复杂性的变化而变化。
我发现***中的这个数字很有启发性:https://en.wikipedia.org/wiki/Overfitting#/media/File:Overfitting_svg.svg。 x 轴是 NN 或 GBM 的训练迭代次数(epochs),但您也可以将其视为模型复杂度参数,例如多项式模型中包含的幂数。如您所见,训练样本和验证样本的性能之间总是存在差距。但是选择不会过拟合的模型的关键是在训练样本的性能(=偏差)和验证样本的性能(训练和性能之间的差异)之间选择最佳权衡验证样本 = 方差)。
【讨论】:
【参考方案3】:过拟合和欠拟合
您可以做的最过度拟合是在您的训练集上获得100%
的准确度。
这意味着您的模型学会了准确预测它以前见过的输入。
如果您遇到这种情况,您的测试集可能会表现得很糟糕。
您可以通过以下方式检测过拟合:
训练集上的高精度 训练集和测试集之间的差距很大您可以通过以下方式检测欠拟合:
训练集的准确度低(与测试集的性能无关)示例:
1)
training set score: 0.67
test set score: 0.66
此示例在训练集上得分较低。所以欠拟合似乎是一个合理的假设。
2)
training set score: 0.892
test set score: 0.876
这一个取决于解释。训练集得分很高,与测试集有差距。
如果两组中的示例非常相似,那么我会说存在一些过度拟合。但是,如果这两组完全不同(例如来自不同的来源),那么结果可以被认为是可以接受的。
【讨论】:
“低”和“高”在很大程度上取决于手头的问题。您的示例 1) 具有误导性,因为 0.67 非常不适合我首先查看 Wiki 上的定义,尤其是本节:en.wikipedia.org/wiki/Overfitting#Machine_learning 这个例子不是我的,来自OP。我同意低和高具有误导性,但取决于解释。这就是为什么我说fair假设,还是需要检查一下是否确实是low。所有这些欠拟合都是为了初步估计,看看接下来要尝试什么。 确实,关于示例的评论是错误的,我打算删除它,但没有完全清理它:)。我认为,这里的问题是没有“初步估计”。因为对于什么是“低”和什么是“高”没有明确的指导。以上是关于机器学习中的过度拟合术语的主要内容,如果未能解决你的问题,请参考以下文章