交叉验证说明

cross validation clarification

我在理解如何实施交叉验证时遇到了一些困难。就我而言,我正在尝试将其应用于 LVQ 系统。这是我目前所理解的...

可以为 LVQ 调整的参数之一是每个 class 建模的原型数量。为了找到最佳数量的原型,必须在训练数据上训练模型,然后在未见数据上测试模型并计算其性能。但是,根据您用于训练和验证的数据点,性能结果会有所不同。因此可以使用交叉验证来获得性能的平均值。

您对不同数量的原型重复此操作,看看哪个数量获得最佳平均值。完成此操作后,您接下来要做什么?你是在整个训练集上根据获得最佳结果的原型数量生成新模型,还是使用交叉验证时获得最高准确率的折叠对应的模型?

Do you generate a new model on the entire training set corresponding to the amount of prototypes which obtained the best result, or do you use the model corresponding to the fold which obtained the highest accuracy during cross validation?

完成 CV 并获得最佳参数(在您的情况下为模型数量)后,您可以修复它们并在整个训练数据集上训练模型。

理由如下。假设您的训练数据集是 tr,而您正试图确定它在其他数据集 te 上的表现(其中 te 是验证数据集,或者 "real world")。由于您无法测试不同参数对 te 的影响(要么因为它会过度拟合,要么因为 te 是 "real world",并且不可用),您在 tr 上通过重复将其拆分为 tr_cv[=34= 来模拟它]。但是,一旦获得最佳参数,就没有理由不使用整个数据来构建模型。