gpt4 book ai didi

swift - 使用拆分表与完全分离表(CreateML、Swift)时的评估准确度不同

转载 作者:搜寻专家 更新时间:2023-10-31 19:26:47 24 4
gpt4 key购买 nike

我正在使用 CreateML 和 Swift 创建表格分类模型。我使用的数据集总共有大约 300 个项目,以及大约 13 个不同的特征。我已经尝试以两种方式训练/测试我的模型,并且得到了非常不同的结果:

1) 从原始完整数据集中随机拆分我的训练和评估数据表:

let (classifierEvaluationTable, classifierTrainingTable) = classifierTable.randomSplit(by: 0.1, seed: 4)

我尝试了 .1 split 数和 4 种子数,但结果各不相同:在某些情况下可能是 33% 或 80% 的评估准确度。 (在这种情况下,我得到了 78% 的训练准确率、83% 的验证准确率、75% 的评估准确率。)

2) 我从原来的数据集中手动取了10个item放到新的数据集中待会测试。然后我从用于训练的 300 项数据集中删除了这些项目。当我测试这 10 个项目时,我得到了 96% 的评估准确率。 (在这种情况下,我得到了 98% 的训练准确率、71% 的验证准确率和 96% 的评估准确率。)

我想知道为什么会有这么大的差异?哪种解读应该被视为更现实可信?我可以对这两种模型做些什么来提高准确性和可信度吗?另外:我对不同的精度测量意味着什么以及我应该如何解释它们(训练、验证、评估)感到困惑?

谢谢。

最佳答案

training/validation accuracy 的含义是,如果后者低于前者,则您的模型过度拟合,即过度适应训练集而无法正确泛化。

所以你的第一个案例产生了好的结果,第二个产生了不好的结果。

当您为模型提供的新(未见)数据在某些方面存在显着差异(这可能可以通过预处理或将其添加到训练集并重新训练模型来解决)时,评估准确性较低。

在第二种情况下,您的模型严重过拟合,并且这 10 个项目是从训练集中取出的,因此它们没有本质上的不同,这显然给了您很高的评估准确性。所以这是一个相当无用的测试。

不清楚第一种情况的评估准确度测试的数据是从哪里得到的。

TL;DR:第一种情况是好的结果,第二种情况是不好的结果。如果对新数据的测试产生的评估准确度太低,则可能是数据在质量上有所不同。

还有一种不同的说法:如果验证准确性低于训练准确性,则您的模型在数量上是错误的(过度拟合);如果您的评估准确性低,则您的模型在质量上很差/不适合您打算使用它的数据。

关于swift - 使用拆分表与完全分离表(CreateML、Swift)时的评估准确度不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55444439/

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