7. 开发/测试集应该多大(machine learning yearning)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了7. 开发/测试集应该多大(machine learning yearning)相关的知识,希望对你有一定的参考价值。

参考技术A 开发集应该足够大,以至于可以检测你尝试的不同算法的差异。比如,如果分类器A的准确率为90%,分类器B的准确率为90.1%,则100个样本大小的开发集不能检测出这0.1%的差异。与我见过的其它机器学习问题相比较,包含100个样本的开发集很小。常见的是包含1000到10000个样本的开发集。在10000个样本上,你有更大的可能性检测到0.1%的提升。[1]

对于成熟和重要的应用——比如广告、web搜索和产品推荐——我见到有团队甚至为0.01%的提升努力,因为这对公司的利润有直接影响。在这种情况下,开发集应该要比10000大,从而检测更小的提升。

测试集的大小又该如何?它应该足够大,大到可以给你的系统的整体性能提供高可信度。一个流行的启发式方法(heuristic)是使用你的数据30%作为测试集。这个方法在不太大规模的样本上——100到10000个样本表现很好。但是在大数据时代,我们有时候面临超过10亿样本的机器学习问题,分配给开发/测试集的比例在降低,而开发/测试集的绝对数字在增长。没有必要获取超出评估你的算法性能的非常大的开发/测试集。

[1]理论上,应该在开发集上测试算法的变化是否带来统计学上显著得变化。实际中,大部分团队不会这样做(除非他们准备发表学术论文),我从来没有发现统计学上的测试对于测量临时进展(interim progress)有用。

CountVectorizer 是不是应该同时适用于训练集和测试集?

【中文标题】CountVectorizer 是不是应该同时适用于训练集和测试集?【英文标题】:Should CountVectorizer be fit on both the train and test sets?CountVectorizer 是否应该同时适用于训练集和测试集? 【发布时间】:2019-12-09 21:40:55 【问题描述】:

我在网上看到了各种文章,其中一些建议 CountVectorizer 应该适合训练集和测试集,还有一些建议它应该只适合训练集。 哪种方法通常更适合文本分类?

【问题讨论】:

【参考方案1】:

通常test_set 应保持不可见,因此CountVectorizer 应仅安装在train_set

【讨论】:

以上是关于7. 开发/测试集应该多大(machine learning yearning)的主要内容,如果未能解决你的问题,请参考以下文章

吴恩达《Machine Learning Yearning》总结(11-20章)

使用 .net 4.0 测试程序集测试 .net 3.5 程序集时的风险有多大

利用KNIME建立Spark Machine learning模型 2:泰坦尼克幸存预测

大内存服务器swap分区应该多大,红帽7系统

装配的 App.Config 被忽略;改为读取 Machine.config

15G装UBUNTU,/、/home、/swap各分多大?