在我看过的一些讲座和教程中,他们建议将您的数据分成三部分:训练、验证和测试。但目前尚不清楚应该如何使用测试数据集,也不清楚这种方法如何优于对整个数据集的交叉验证。
假设我们已将 20% 的数据保存为测试集。然后我们将剩下的部分分成 k 折,并使用交叉验证,我们找到对该数据集中的未知数据做出最佳预测的模型。假设我们找到的最佳模型给了我们75%的准确率。
各种问答网站上的各种教程和大量问题表明,现在我们可以在保存的(测试)数据集上验证我们的模型。但我仍然不知道它是如何完成的,也不知道它有什么意义。
假设我们在测试数据集上 的准确率为70% 。那么我们接下来要做什么呢?我们是否尝试另一个模型,然后另一个模型,直到我们在测试数据集上获得高分?但在这种情况下,看起来我们只会找到适合我们有限(仅 20%)测试集的模型。这并不意味着我们会找到总体上最好的模型。
此外,如果仅在有限的数据集上计算该分数,我们如何将其视为对模型的一般评估?如果这个分数很低,可能是我们运气不好,选择了“坏”的测试数据。
另一方面,如果我们使用我们拥有的所有数据,然后使用 k 折交叉验证选择模型,我们将从我们拥有的整个数据集中找到对未知数据做出最佳预测的模型。