我有一个关于交叉验证过程的问题。我正在学习 Cursera 上的机器学习课程。其中一个主题是关于交叉验证。我发现有点难以理解。我确实知道为什么我们需要 CV,因为我们希望我们的模型能够很好地处理未来(未知)数据,并且 CV 可以防止过度拟合。然而,这个过程本身是令人困惑的。
我所理解的是,我将数据分成 3 个子集:训练、验证和测试。训练和验证是找到模型的最佳复杂度。我不明白的是第三个子集。我知道我为模型采用了许多功能,对其进行训练并在验证子集上对其进行验证,并在我更改结构时寻找最小成本函数。当我找到它时,我会在测试子集上测试模型。如果我已经在验证子集上找到了最小成本函数,为什么我需要在测试子集上再次测试它???
有人可以为我澄清一下吗?
谢谢