gpt4 book ai didi

machine-learning - 验证和测试准确性差异很大

转载 作者:行者123 更新时间:2023-11-30 08:38:30 25 4
gpt4 key购买 nike

我目前正在 kaggle 中处理数据集。在训练完训练数据的模型后,我在验证数据上对其进行了测试,得到的准确度约为 0.49。

但是,同一模型在测试数据上的准确度为 0.05。

我使用神经网络作为我的模型

那么,发生这种情况的可能原因是什么以及如何开始检查和纠正这些问题?

最佳答案

泛化差距较大的原因:

  1. 不同的分布:验证集和测试集可能来自不同的分布。尝试验证它们确实是从代码中的同一进程中采样的。
  2. 样本数量:验证和/或测试集的大小太小。这意味着经验数据分布差异太大,从而解释了不同的报告准确性。一个例子是由数千张图像和数千个类组成的数据集。然后,测试集可能包含一些不在验证集中的类(反之亦然)。使用交叉验证来检查测试准确性是否始终低于验证准确性,或者它们在每次折叠中是否通常差异很大。
  3. 超参数过拟合:这也和两个集合的大小有关。你做了超参数调整吗?如果是这样,您可以在调整超参数之前检查准确性差距是否存在,因为您可能在验证集上“过度拟合”了超参数。
  4. 损失函数与准确度:您报告了不同的准确度。您是否还检查了训练、验证和测试损失?您可以根据损失函数训练模型,因此这是最直接的性能衡量标准。如果准确性仅与损失函数松散耦合,并且测试损失大约与验证损失一样低,则可能可以解释准确性差距。
  5. 代码中的错误:如果测试集和验证集是从同一流程中采样并且足够大,则它们是可以互换的。这意味着测试和验证损失必须大致相等。因此,如果您检查了上述四点,我的下一个最佳猜测将是代码中的错误。例如,您不小心也在验证集上训练了模型。您可能希望在更大的数据集上训练模型,然后检查准确性是否仍然存在差异。

关于machine-learning - 验证和测试准确性差异很大,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48718663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com