交叉验证 - 使用测试集或验证集进行预测?

时间:2017-04-27 16:32:56

标签: validation machine-learning

我对交叉验证有疑问。

在机器学习中,我们知道有培训,验证,测试集。 最后运行测试集以查看最终模型/分类器的执行情况。

但在交叉验证过程中: 我们正在将数据分成训练集和测试集(大多数教程使用了这个术语),所以我很困惑。我们是否需要将整个数据分为3个部分:培训,验证,测试?因为在交叉验证中我们只是继续谈论与2集的关系:训练和其他。

有人可以帮忙解释一下吗?

由于

2 个答案:

答案 0 :(得分:3)

是的,它有点令人困惑,因为有些材料可以互换地使用CV /测试而某些材料不能使用,但是我会通过理解为什么它可以让它变得容易理解。需要:

你需要火车才能做到这一点,训练,但是你还需要一种方法来确保你的算法不记忆火车组(它不会过度拟合)以及它的效果如何这样做,因此需要测试集,以便您可以为它提供从未见过的数据,并且可以衡量性能。

但.... ML全部关于实验,你将训练,评估,调整一些旋钮(超参数或架构),再次训练,一遍又一遍地评估,然后你将选择最好的实验结果,你部署你的系统和生产中它获得了从未见过的数据,它没有表现得那么好,发生了什么?您使用测试数据来拟合参数并做出决策,因此您对这些测试数据过度拟合,但您不知道它对未见过的数据有何影响。

交叉验证解决了这个问题,你有你的列车数据来学习参数,测试数据来评估它对看不见的数据的作用,但仍然需要一种方法来试验最好的超级参数和架构:你采取训练样本数据并将其称为交叉验证集,并隐藏您的测试数据,您将永远不会使用它直到结束。

现在使用您的列车数据来学习参数,并尝试使用超级参数和架构,但是您将评估交叉验证数据上的每个实验而不是测试数据(您可以将其视为使用CV数据作为学习超参数),经过大量实验,并选择了性能最佳的选项(在简历上),现在使用测试数据来评估它在将数据部署到生产之前从未见过的数据的执行情况。

答案 1 :(得分:0)

这通常是一种选择。根据设计,交叉验证过程是验证模型的另一种方法。您不需要单独的验证集 - 各种列车测试分区的交互取代了验证集的需要。

考虑名称,交叉 - 验证......: - )