K-Fold交叉验证的应用部署

Application and Deployment of K-Fold Cross-Validation

K 折交叉验证是一种用于将数据拆分为 K 折以进行测试和训练的技术。目标是估计机器学习模型的普遍性。模型训练了 K 次,每次训练折叠一次,然后在相应的测试折叠上进行测试。

假设我想比较某个具有 10 个折叠的任意数据集上的决策树和逻辑回归模型。假设在 10 折中的每一个上训练每个模型并获得相应的测试精度后,Logistic 回归在测试折中具有更高的平均精度,表明它是数据集更好的模型。

现在,进行应用和部署。我是在所有数据上重新训练逻辑回归模型,还是从在 K 折上训练的 10 个逻辑回归模型创建一个整体?

在 k-fold CV 期间训练的模型不应重复使用。 CV 仅用于可靠地估计模型的性能。

因此,标准方法是 re-train CV 之后完整训练数据的最终模型。

请注意,评估不同的模型类似于 hyper-parameter 调整,因此理论上应该在新的测试集上重新评估所选最佳模型的性能。但是我只测试了两个模型,我认为这对你的情况并不重要。

您可以找到有关 k-fold cross-validation here and there 的更多详细信息。

CV 的主要目标是验证我们不是偶然得到这些数字。所以,我相信你可以只使用单一模型进行部署。

如果您已经对 hyper-parameters 和模型性能感到满意,一种选择是对您拥有的所有数据进行训练并部署该模型。

而且,另一个选项很明显,您可以部署其中一个 CV 模型。

关于集成选项,我认为它不应该比在所有数据上训练的模型提供更好的结果;因为每个模型使用相似的参数训练相同的时间,并且它们具有相似的架构;但火车数据略有不同。所以,他们不应该表现出不同的表现。根据我的经验,当模型的输出因架构或输入数据(如不同的图像大小)而不同时,集成会有所帮助。