开发集应该足够大,这样尝试不同算法时你就能检测出它们的不同。例如,分类器A的精确度是90.0%,分类器B的精确度是90.1%,那么只有100个样例的开发集并能够狗检测出这0.1%的区别。比较我所见过的其他的机器学习问题,100个样例的开发集太小了。通常开发集样例应达到1000到10000的树木。使用10000个样例,你就更有机会检测出0.1%的改进。
对于成熟和重要的应用---例如,广告,搜索引擎以及产品推荐系统---我曾见到很多团队对仅仅0.01%的改进投入巨大的热情和努力,因为这直接影响到公司的盈利。在这种情况下,开发集的样例数量应该远远超过10000,以便能够检测出算法0.01%的微小改进。
那么测试集的样例数量应该有多大呢?它应该足够大,以便能够给出度量你的系统总体性能的证据。一种常用的做法是将30%的数据用作测试集。这适用于你只有少量数据----比如100到10000个样例的情况。但是在大数据时代,很多机器学习问题的数据规模很大,有时可以达到10亿数量级的数据,即使分配给开发集和测试集的数据的绝对数量一直在增加,但是分配给他们的占比(相对于获取到的海量数据)却在缩小。这时如果开发集和测试集的规模如果已经能够估算出算法的性能,就没有必要增加了。









网友评论