7. 开发集和测试集需要多大?

开发集应该足够大到足以检测你正在尝试的算法之间的差异。例如,如果分类器A的准确率是90.0%,分类器的准确率是B,那么一个100个样本的开发集将无法检测到这个0.1%的差异。与我见过的其他机器学习问题相比,100个样本的开发集是很小的。开发集的范围从1000到10 000个样本是非常常见的。通过10 000个样本,你将很有可能检测到0.1%的改进[2]。

对于成熟且重要的应用,比如广告、网页搜索和产品推荐,我也看到有很强动力去提升0.01%的团队,因为它直接影响了公司的利润。在这种情况下,开发集可能远远大于10 000,以便能够检测到更小的改进。

那么测试集的大小应该如何呢?它应该足够大到可以给系统的整体性能一个高度确信的结果。一种流行的启发式的方法是将30%的数据用于测试集。这适用于你的样本比较少的情况——比如100到10 000个样本。但是在大数据时代,我们有时候有10亿多个例子,分配给开发集和测试集的数据笔记已经缩小,即使开发集和测试集样本的绝对数量一直在增长。没有必要使用远超出评估算法性能所需要数量的开发集和测试集。

—————————————————————————————

[2]. 理论上,还可以在开发集上测试算法是否有统计上的显著差异。在实践中,大多数团队不会做(除非他们发表相关学术研究论文),而且我通常没有发现这对于测量进展期有用的统计显著性检验。

Last updated