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