使用 MLP 算法的 k 折交叉验证

k-fold cross validation with MLP algorithm

我有一个分为训练和测试部分的数据集。我的任务是训练它并使用 k 折交叉验证评估我的模型。我对任务说明有点困惑。 据我所知,k-dold 交叉验证的要点是通过使用所有数据来训练和测试它来评估有限数据样本上的模型。请告诉我我的算法是否正确:

  1. 连接我的数据集的测试和训练部分。
  2. 将整个数据集分成 k 个部分。
  3. 使用 MLP 在我的数据集的所有部分上训练我的模型,除了一个部分,然后在左侧部分测试它。保留评价分数。
  4. 计算平均评价分数。

是的,你做对了。使用 K 折交叉验证的全部意义在于我们的数据有限,它确保原始数据集中的每个观察结果都有机会出现在训练和测试集中。

您提到的步骤:

  1. 将整个数据随机分成k份(k的值不能太小或太高,根据数据大小选择5到10比较理想)。

  2. 然后使用 K-1 折拟合模型并使用剩余的第 K 折验证模型。保存分数和错误。

  3. 重复这个过程,直到每一个K-fold作为测试集。然后取你记录的分数的平均值。这将是模型的性能指标。

对第 1 点的编辑:较高的 K 值会导致模型偏差较小,但较大的方差可能会导致过度拟合,而较低的 K 值类似于训练-测试拆分方法。因此我们选择 k 值介于 5 到 10 之间。您可以试验这些值以获得更好的性能指标。