【问题标题】:k-fold cross validation with MLP algorithm使用 MLP 算法进行 k 折交叉验证
【发布时间】:2020-05-04 17:17:31
【问题描述】:
我有一个数据集,分为训练和测试部分。我的任务是训练它并使用 k 折交叉验证评估我的模型。我对任务声明有点困惑。
据我所知,k-dold 交叉验证的目的是通过使用所有数据来训练和测试模型,在有限的数据样本上评估模型。请告诉我我的算法是否正确:
- 连接我的数据集的测试和训练部分。
- 将整个数据集拆分为 k 个部分。
- 使用 MLP 在我的数据集除一个以外的所有部分训练我的模型,然后在左侧部分对其进行测试。保留评估分数。
- 计算平均评估分数。
【问题讨论】:
标签:
machine-learning
neural-network
k-fold
mlp
【解决方案1】:
是的,你做得对。使用 K-fold 交叉验证的全部意义在于我们的数据有限,它确保来自原始数据集的每个观察结果都有机会出现在训练和测试集中。
你提到的步骤:
将整个数据随机分成 k 折(k 值不能太小或太高,理想情况下我们根据数据大小选择 5 到 10)。
然后使用 K-1 折拟合模型并使用剩余的第 K 折验证模型。保存分数和错误。
重复此过程,直到每个 K 折都用作测试集。然后取你记录的分数的平均值。这将是模型的性能指标。
针对第 1 点进行编辑:K 值越高,模型偏差越小,但较大的方差可能导致过拟合,因为 K 值越低,类似于训练-测试拆分方法。因此我们将 k 值选择在 5 到 10 之间。您可以试验这些值以获得更好的性能指标。