Leave-One-Out 和 K-Fold Cross 验证有什么区别?

机器算法验证 交叉验证 数据挖掘
2022-04-01 23:31:30

据我所知,在 K 折交叉验证中,样本被分成 k 组,其中的第 k-1 轮用于模型的训练,最后一个用于测试模型和估计误差模型。总共进行了 k 次测量,最后取误差的平均值。

那么,如果我对 k-fold 的描述或多或少是正确的,那么与 Leave-One-Out Cross 验证有什么区别?

编辑:实际上我并不关心 k 的值,我根本看不出 LOO 和 K-fold 交叉验证之间的区别。

2个回答

在 loocv 方法中,我们将数据集划分为一个数据点作为测试数据,而所有剩余的数据点作为我们的训练数据。然后,我们通过使用这个 n-1 个训练数据与 1 个测试数据来验证我们的模型。我们像这样执行 n 次迭代,其中 1 个测试数据被转发,剩余的 n-1 个数据是我们的新训练数据。这适用于时间序列分析。然后我们找到获得的 n rmse 值的平均值。而在 k 折方法中,我们将整个数据集划分为 mot k 折,其中一折将是测试折,而 k-1 折将是训练折。然后,我们通过针对 1 个测试折叠训练 k-1 个训练折叠来验证我们的模型。我们进行这样的 k 次迭代并平均 k rmse 值。这里的测试折叠前后移动。因此它不能用于时间序列分析,因为它会与时间混淆。如果某处有误,请有人纠正我

留一法拟合具有 k-1 个观测值的模型,并对剩余的观测值进行分类。它与您的描述不同,因为此过程再重复 k-1 次,而忽略了不同的观察结果。您可以从 Lachenbruch 和 Mickey 在 1968 年的原始论文中了解到这一点。在我的回答中,我将 k 视为完整样本量。在 k 折交叉验证中,它具有不同的含义。