如果研究中验证准确性高而测试准确性低怎么办?


15

我对机器学习研究中的验证有一个特定的问题。

众所周知,机器学习机制要求研究人员在训练数据上训练他们的模型,通过验证集从候选模型中进行选择,并报告测试集的准确性。在非常严格的研究中,测试集只能使用一次。但是,它永远不可能成为研究方案,因为在发表(甚至提交)论文之前,我们必须提高性能,直到测试准确性优于最新结果为止。

现在出现了问题。假设50%是最先进的结果,而我的模型通常可以达到50--51的精度,平均而言更好。

但是,我的最佳验证准确性(52%)产生了非常低的测试准确性,例如49%。然后,如果我无法进一步提高验证acc,则必须报告49%的总体性能,这对我来说是没有希望的。这确实使我无法研究问题,但是对我的同伴来说并不重要,因为他们没有看到52%的符合率,我认为这是一个离群值。

那么,人们通常在研究中如何做?

ps k-fold验证没有帮助,因为相同的情况仍然可能发生。

Answers:


9

根据定义,当训练准确性(或您使用的任何度量)高于测试时,您将拥有一个过拟合模型。从本质上讲,您的模型了解到的细节有助于其在训练数据中更好地发挥作用,而这些不适用于较大的数据群,因此会导致性能下降。

我不确定为什么您说k倍验证不会有帮助。其目的是帮助避免模型过度拟合。也许您没有足够的数据?这样的声明很重要,尤其是在强烈建议使用这种交叉验证方法时,如果您要捍卫任何研究,则尤其如此。

您说您一次只能使用测试集(再次假设样本量较小?)。以我的经验,最常见的方法是对模型进行k折交叉验证。让我们以100样本量的10倍CV为例,并假设您的分类问题是二进制的,以使计算简单。因此,我将数据分为10个不同的折叠。然后,我将模型拟合为9/10倍,然后预测我遗漏的1/10。对于第一次运行,生成的混淆矩阵为:

    0  1
0   4  1
1   2  3

然后,我再重复一次此分析,将剩下的1/10折叠留给其他9/10。并得到我的下一个困惑矩阵。完成后,我将有10个混淆矩阵。然后,我将对这些矩阵求和(因此我预测了所有100个样本),然后报告我的统计信息(准确性,PPV,F1得分,Kappa等)。如果您的准确性不理想,那么还有许多其他可能性。

  1. 您的模型需要改进(更改参数)
  2. 您可能需要尝试其他机器学习算法(并非所有算法都相同)
  3. 您需要更多数据(很难找到细微的关系)
  4. 您可能需要尝试转换数据(取决于使用的算法)
  5. 您的因变量和自变量之间可能没有任何关系

问题的实质是,比您的培训要低的测试指标(例如,准确性)表明模型过度拟合,而不是尝试创建新的预测模型时想要的东西。


感谢您的回覆。我所关心的是出版物的机器学习研究,而不是应用机器学习技术。通常,基准会提供培训,验证和测试集的标准组合。而且,k倍只能减少方差。我可能仍然遇到这种情况,即我的(平均)验证访问权限。是高,但测试acc。低。
谅解

有时很有趣,如果我重新设计模型,我可以忽略异常值,因为我的模型(以及假设类)发生了变化,但这不适用于调整超参数,因为我们是从假设中选择模型类。但是,确实,我们的研究人员拥有不确定的假设类别-我们正在尝试任何我们喜欢的东西。在研究过程中,这确实使我感到困扰,通常,精度差异通常很小,为0.1%。

@Mou,我想我仍然不确定您的主要问题是什么。似乎有多个问题。处理离群值是另一个主题。您是否正在尝试优化参数或评估最终模型?这可能是特定于其他字段的,但0.1%的变化很小。您可以选择我的答案中列出的选项,也可以接受您只能从当前模型和数据中获得很多收益。该模型似乎仍然过拟合(尽管略有过大)。
cdeterman 2015年

我同意你的看法。我必须接受我的模型不是很好。但几天前,当高简历。+低测试权限 没有跳到我的屏幕上,我的模型是世界上最好的模型。现在,虽然我没有做任何更改,但这不是。此外,我没有希望在简历中胜过52%的成绩,这使我的研究陷入困境,但我的同龄人不必担心。
谅解

您必须更改某些内容才能更改数字,或者有一些未设置seed可重复性的随机性。我怀疑您的简历程序具有某种随机性,如果重复执行,可能会返回略有不同的结果(但这只是一个猜测)。我确实建议您探索其他一些模型或数据转换以尝试改善性能。
cdeterman 2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.