数据集大小是否会影响机器学习算法?

use*_*890 13 algorithm machine-learning dataset svm bigdata

因此,想象一下能够获得足够质量的足够数据(数百万个用于训练和测试的数据点).请暂时忽略概念漂移并假设数据是静态的,并且不会随时间变化.在模型质量方面使用所有数据是否有意义?

Brain和Webb(http://www.csse.monash.edu.au/~webb/Files/BrainWebb99.pdf)包含了一些试验不同数据集大小的结果.在经过16,000或32,000个数据点训练后,他们测试的算法会收敛到稳定.但是,由于我们生活在大数据世界,我们可以访问数百万个数据集,所以这篇论文有点相关,但已经过时了.

是否有任何关于数据集大小对学习算法(朴素贝叶斯,决策树,SVM,神经网络等)影响的最新研究.

  1. 学习算法何时收敛到某个稳定模型,而更多数据不再提高质量?
  2. 它可以在50,000个数据点之后发生,或者可能在200,000之后或仅在1,000,000之后发生?
  3. 有经验法则吗?
  4. 或者也许算法无法收敛到稳定模型,达到某种均衡?

我为什么这么问?想象一下,存储有限的系统和大量独特的模型(数以千计的模型都有自己独特的数据集),无法增加存储空间.因此,限制数据集的大小非常重要.

对此有何想法或研究?

Adr*_*nNK 22

我做了关于这个主题的硕士论文,所以我碰巧知道了很多.

在我的硕士论文的第一部分中,我拿了一些非常大的数据集(约5,000,000个样本),并通过学习不同百分比的数据集(学习曲线)测试了一些机器学习算法. HIGGS的结果

我做的假设(我主要是使用scikit-learn)不是为了优化参数,而是使用算法的默认参数(由于实际原因我不得不做出这个假设,没有优化,一些模拟已经超过24小时了簇).

首先要注意的是,实际上,每种方法都会导致数据集某一部分达到稳定状态.但是,由于以下原因,您无法得出有关达到平台所需的有效样本数量的结论:

  • 每个数据集都是不同的,对于非常简单的数据集,它们可以为您提供10个样本所提供的几乎所有内容,而有些数据集在12000个样本后仍然可以显示(参见上面示例中的Higgs数据集).
  • 数据集中的样本数是任意的,在我的论文中,我测试了一个带有错误样本的数据集,这些样本只是添加到算法的混乱中.

然而,我们可以区分具有不同行为的两种不同类型的算法:参数(线性,......)和非参数(随机森林,......)模型.如果达到非参数的平台,则意味着数据集的其余部分是"无用的".正如你所看到的那样,Lightning方法很快在我的图片上达到了一个平台,这并不意味着数据集没有任何东西可以提供,但更多的是这个方法可以做的最好.这就是为什么当要获得的模型很复杂并且可以从大量训练样本中获益时,非参数方法的效果最好.

至于你的问题:

  1. 往上看.

  2. 是的,这完全取决于数据集内部的内容.

  3. 对我来说,唯一的经验法则是进行交叉验证.如果您认为您将使用20,000或30,000个样本,那么您通常会遇到交叉验证不成问题的情况.在我的论文中,我在测试集上计算了我的方法的准确性,当我没有注意到显着的改进时,我确定了到达那里的样本数量.正如我所说,你可以观察到一些趋势(参数方法往往比非参数方法更快地饱和)

  4. 有时,当数据集不够大时,您可以获取您拥有的每个数据点,如果您拥有更大的数据集,仍然有改进的余地.在我的论文中没有对参数进行优化,Cifar-10数据集表现得那样,即使在我的算法已经融合了50,000之后也是如此.

我要补充一点,优化算法的参数对收敛到高原的速度有很大的影响,但它需要另一个交叉验证步骤.

你的最后一句与我论文的主题高度相关,但对我而言,它与执行ML任务的记忆和时间更相关.(就好像你覆盖的数据集少于整个数据集,你将拥有更小的内存需求,而且会更快).关于这一点,"核心集"的概念对你来说真的很有趣.

我希望我可以帮助你,我不得不停下来,因为我可以继续这样做,但如果你需要更多的澄清,我会很乐意提供帮助.

  • 您的论文是否可以在线获取? (2认同)