-1

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

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

1 回答 1

2

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

您提到的步骤:

  1. 将整个数据随机分成 k 折(k 的值不能太小或太高,理想情况下我们根据数据大小选择 5 到 10)。

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

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

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

于 2020-05-04T17:22:49.343 回答