我正在使用 CreateML 和 Swift 创建一个表格分类模型。我使用的数据集总共有大约 300 个项目和大约 13 个不同的特征。我尝试以两种方式训练/测试我的模型,结果却出人意料地大相径庭:
1)从原始完整数据集中随机拆分我的训练和评估数据表:
let (classifierEvaluationTable, classifierTrainingTable) = classifierTable.randomSplit(by: 0.1, seed: 4)
我玩过 0.1 分割数和 4 种子数,但结果到处都是:在某些情况下可能是 33% 或 80% 的评估准确度。(在这种情况下,我得到了 78% 的训练准确率、83% 的验证准确率和75% 的评估准确率。)
2)我手动从原始数据集中取了10个项目,放到一个新的数据集中稍后测试。然后我从用于训练的 300 个项目数据集中删除了这些项目。当我测试这 10 个项目时,我得到了96% 的评估准确率。(在这种情况下,我得到了 98% 的训练准确率、71% 的验证准确率和 96% 的评估准确率。)
我想知道为什么会有这么大的差异?哪种阅读应该被视为更现实和可信?我可以对这两种模型做些什么来提高准确性和可信度吗?另外:我对不同的准确度测量意味着什么以及我应该如何解释它们(培训、验证、评估)感到困惑?
谢谢。