机器学习中训练集、验证集(开发集)、测试集的定义及其划分

这三者是在进行一个机器学习项目中非常重要的内容。它们的确定往往决定了这个项目的走向。错误的训练集、开发集和测试集的划分很可能会让一个团队浪费数月时间。

training set:顾名思义,是用来训练模型的。因此它占了所有数据的绝大部分。

development set(validation set):用来对训练集训练出来的模型进行测试,对训练出的模型的超参数进行调整,不断地优化模型,。

test set:在训练结束后对训练出的模型进行一次最终的评估所用的数据集。

1.传统的机器学习领域中,由于收集到的数据量往往不多,比较小,所以需要将收集到的数据分为三类:训练集、验证集、测试集。也有人分为两类,就是不需要测试集。

比例根据经验不同而不同,这里给出一个例子,如果是三类,可能是训练集:验证集:测试集=6:2:2;如果是两类,可能是训练集:验证集=7:3。因为数据量不多,所以验证集和测试集需要占的数据比例比较多。

2.在大数据时代的机器学习或者深度学习领域中,如果还是按照传统的数据划分方式不是十分合理,因为测试集和验证集用于评估模型和选择模型,所需要的数据量和传统的数据量差不多,但是由于收集到的数据远远大于传统机器学习时代的数据量,所以占的比例也就要缩小。比如我们拥有1000000,这么多的数据,训练集:验证集:测试集=98:1:1。如果是两类,也就是相同的道理。

注意:有些人在把数据分类的时候是没有测试集数据,这样并不是十分合理,有测试集比较放心,建议把数据分类最好有这个数据集,也就是分为三类数据。

你可能感兴趣的:(机器学习中训练集、验证集(开发集)、测试集的定义及其划分)