因此,想象一下能够获得足够质量的足够数据(数百万的训练和测试数据点)。请暂时忽略概念漂移并假设数据是静态的,并且不会随时间变化。在模型质量方面使用所有数据是否有意义?
Brain和Webb(http://www.csse.monash.edu.au/~webb/Files/BrainWebb99.pdf)已经包含了一些试验不同数据集大小的结果。在经过16,000或32,000个数据点训练后,他们测试的算法会收敛到稳定。但是,由于我们生活在大数据世界中,我们可以访问数百万个数据集,所以这篇论文有点相关,但已经过时了。
是否有任何关于数据集大小对学习算法(朴素贝叶斯,决策树,SVM,神经网络等)影响的最新研究。
我为什么这么问?想象一下,存储有限的系统和大量独特的模型(数以千计的模型都有自己独特的数据集),无法增加存储空间。因此,限制数据集的大小非常重要。
对此有何想法或研究?
答案 0 :(得分:21)
我完成了关于这个主题的硕士论文,所以我碰巧知道了很多。
在我的硕士论文的第一部分中,我拿了一些非常大的数据集(约5,000,000个样本)并通过学习不同百分比的数据集(学习曲线)测试了一些机器学习算法。 )。
我做的假设(我主要使用scikit-learn)不是为了优化参数,而是使用算法的默认参数(由于实际原因我不得不做出这个假设,没有优化,一些模拟已经超过24集群上的小时数)。
首先要注意的是,实际上,每种方法都会导致数据集某一部分达到稳定状态。但是,由于以下原因,您不能得出有关达到平台所需的有效样本数量的结论:
至于你的问题:
见上文。
是的,这完全取决于数据集内部的内容。
对我来说,唯一的经验法则是进行交叉验证。如果您认为您将使用20,000或30,000个样本,那么您通常会遇到交叉验证不成问题的情况。在我的论文中,我在测试集上计算了我的方法的准确性,当我没有注意到显着的改进时,我确定了到达那里的样本数量。正如我所说,你可以观察到一些趋势(参数方法往往比非参数方法更快地饱和)
有时,当数据集不够大时,您可以获取所拥有的每个数据点,如果您拥有更大的数据集,仍然有改进的余地。在我的论文中没有对参数进行优化,Cifar-10数据集表现得那样,即使在我的算法已经融合了50,000之后也是如此。
我补充说,优化算法的参数会对收敛到高原的速度产生很大影响,但它需要另一步交叉验证。
你的最后一句与我论文的主题高度相关,但对我而言,它与执行ML任务的记忆和时间更相关。 (好像你覆盖的数据集少于整个数据集,你的内存需求会更少,而且会更快)。关于这一点,"核心集"对你来说真的很有意思。
我希望我可以帮助你,我不得不停下来,因为我可以继续这样做,但如果你需要更多的澄清,我很乐意提供帮助。