我对交叉验证方法和训练验证测试方法有疑问。
有人告诉我,我可以将数据集分成 3 个部分:
- 训练:我们训练模型。
- 验证:我们验证和调整模型参数。
- 测试:从未见过的数据。我们得到一个无偏的最终估计。
到目前为止,我们已经分为三个子集。直到这里一切都好。附上一张图片:
然后我遇到了 K-fold 交叉验证方法,我不明白的是如何将测试子集与上述方法联系起来。意思是,在 5 折交叉验证中,我们将数据分成 5 份,在每次迭代中,非验证子集用作训练子集,验证用作测试集。但是,就上述示例而言,k-fold 交叉验证中的验证部分在哪里?我们要么有验证,要么有测试子集。
当我提到自己训练/验证/测试时,“测试”就是得分:
模型开发通常是一个两阶段的过程。第一阶段是训练和验证,在此期间,您将算法应用于您知道结果的数据,以揭示其特征和目标变量之间的模式。第二阶段是评分,在此阶段您将训练好的模型应用于新数据集。然后,它以分类问题的概率分数和回归问题的估计平均值的形式返回结果。最后,您将经过训练的模型部署到生产应用程序中,或使用它发现的见解来改进业务流程。
例如,我找到了 Sci-Kit 学习交叉验证版本,如下图所示:
在进行拆分时,您可以看到他们给您的算法只处理原始数据集的训练部分。因此,最终,我们无法执行最终评估过程,如您在附图中所见。
谢谢!