如何避免过度拟合测试数据?

问题描述 投票:2回答:2

我有一台机器学习问题,其中可用的数据已经被分成一个训练集和测试集。我运用我的学习算法与k折交叉验证的使用2和20之间的k值的训练集的帮助。

现在,随着训练集交叉验证运行我的学习算法后,我申请了新生成的模型来测试集,并找到泛化误差比我会基于交叉验证结果的预期。所以,现在我重复以前一样使用相同的数据拆分的过程中,但在学习算法不同的参数。

是否有关于如何常在此过程中的一个可以重复使用的测试仪任何硬性规定?我会怀疑几个回合后一个是过度拟合测试数据的危险,因此该系统将随后在实际应用中表现不佳。出于这个原因,我想知道是否有拇指或理论结果说人怎么能经常检查测试集学习算法的结果之前,一个人需要得到一个新的测试集的普遍接受的规则。

machine-learning training-data
2个回答
0
投票

测试数据实际上意味着作为样本看不见的数据通过你的模型,给你的神经网络的最终估计,它的性能,一旦模型看到一个看不见的数据,并调整了执行上的水平,那本质上变成十字验证集。

你应该尝试将数据分割成三个部分,培训,交叉验证和测试,列车上的数据,并根据它调整它的交叉验证性能,然后你做调整后,对测试设置以获得运行它是如何工作的看不见的数据,并将其标记为模型的准确性预测。

现在,有效地把你的问题变成,你可以过拟合交叉验证数据,答案是,稍微复杂一些,如果数据集足够大,并且交叉验证设置也有数据点的大的分布,你不会过度拟合上您的交叉验证集,但如果你没有足够的数据点在您的交叉验证设置,或者不是从数据集的随机分布,那么它在理论上是可能过度拟合您的交叉验证设置,但是,这种几率是相当低。

也只是因为你的测试集精度比你的交叉验证准确度较低并不意味着你的模型是交叉验证过拟合,是因为你的模型,调整了工作交叉验证设置好一种正常的行为。

如果有什么不清楚随意评论。


-2
投票

您可以使用测试设置任意次数,只要其数据不用于训练。应用模型的测试集不发生时既不影响测试集,也不是模式 - 训练的模型只是你传递给它的数据的功能。还要注意,在测试组错误几乎总是比交叉验证时,由于训练算法本身试图优化模型车组,而不是测试集。最简单,最可靠的方法对测试集更低的错误是训练上的大数据集模型。另一种方法,这有助于降低专门泛化误差,使用regularization。详情请参阅ML class第七部分。

© www.soinside.com 2019 - 2024. All rights reserved.