深度学习tips-训练集、开发集和测试集

training set、development set and test set

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

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

development set:用来对训练集训练出来的模型进行测试,通过测试结果来不断地优化模型。

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


它们的划分非常简单,一句话说就是要保持它们每一个数据集的分布是相同的。三者都指向同一目标,就可以正常地用来训练测试。如果他们指向的分布都是不同的,可能就是一场灾难。


至于划分的比例呢?
在以前的机器学习任务中,数据量还不是这么大的时候,上百条数据,我们可以根据训练集测试集7:3或者8:2来划分。训练集:开发集:测试集6:2:2这样划分。
而如今深度学习中几十万上百万的数据,训练集:开发集:测试集98:1:1这样也是足够了。如果要是一百万条数据的话,1%就是1万条,足以用来测试模型。

以上凡是只说了训练集和测试集时,其实是用训练集来训练,测试集起到的是开发集的作用。因此严格意义上来讲应该是训练集和开发集的比例,而不包含测试集。

你可能感兴趣的:(machine,learning,deeplearning,知识分享,深度学习tips)