开发集需要足够多的样本数据,才可以检测出算法之间的不同。
举个例子,如果分类器A的准确率是90%,分类器B的准确率是90.1%,假设开发集有100个样本,那么这个开发集就无法检测出这0.1%的区别。与其他机器学习问题相比较而言,拥有100个样本的开发集是很小的。一般常见的开发集有1000到10000个样本。在拥有10000个样本的开发集中,0.1%的提升,是很好检测出来的。
对于有些重要的成熟应用,我也见过有些团队(如广告公司,网页搜索,产品推荐)会极力去取得这0.01%的提升,因为这会直接关系到企业的利润。在这种情况下,开发集规模可能远超过 10,000 个样本,从而可以检测出那些不易察觉的效果提升。
那么测试集需要多少个样本数据呢?为了整体的效果,测试集需要有足够多的样本数据才可以。一种常见的启发式策略是将整体 30% 的数据用作测试集,不过这比较适用于样本数据在100-10000之间的情况。在大数据时代,有时候我们的样本数量会超过十亿,尽管开发集和测试集的绝对数量在增长,但是占整体数据的比例是在缩减的。除了评估算法效果所需的开发集和测试集之外,不需要过多的开发集和测试集。
大家好,我是AI搬运工
致力于将国外的AI好文,翻译成大家都懂的中国话!
本文属于AI搬运工自行翻译,如有错误,欢迎指正!
原文摘自于:Machine Learning Yearning(Technical Strategy for AI Engineers, In the Era of Deep Learning)(Draft Version)
往期回顾
01 谈及监督学习时,我们在谈什么?
02 监督学习之回归分析法:预测连续数值
03 监督学习之分类算法
04 验证集和测试集与机器学习有什么关系
05 开发集和测试集应该来自于同一分布吗?