统计和数据挖掘软件工具,用于处理大型数据集


27

目前,我必须分析大约2000万条记录并建立预测模型。到目前为止,我已经试用了Statistica,SPSS,RapidMiner和R。在这些Statistica中似乎最适合处理数据挖掘,并且RapidMiner用户界面也非常方便,但是Statistica,RapidMiner和SPSS似乎仅适用于较小的数据集。

谁能为大型数据集推荐一个好的工具?

谢谢!


6
您能否更具体一点?您实际上想对数据进行什么挖掘,您打算如何做?我已经使用R来分析了与您相似的尺寸记录,这并不是一个糟糕的经历。
suncoolsu

这个问题很快就会过时。对于此类工具的最新版本,最好每半年进行一次汇总(wiki)。
Iterator

Answers:


19

我第二个@suncoolsu评论:数据集的维数并不是使您适合特定软件的唯一标准。例如,如果您只是打算进行无监督聚类或使用PCA,那么有几种专用工具可以处理大型数据集,这在基因组研究中很常见。

现在,R(64位)可以很好地处理大数据,您仍然可以选择使用磁盘存储来代替RAM访问,但是请参阅CRAN Task View High-Performance and Parallel Computing withR 。标准GLM可以轻松容纳20,000 obs。(但另请参见speedglm)在合理的时间内,如下所示:

> require(MASS)
> n <- 20000
> X <- mvrnorm(n, mu=c(0,0), Sigma=matrix(c(1,.8,.8,1), 2, 2))
> df <- cbind.data.frame(X, grp=gl(4, n/4), y=sample(c(0,1), n, rep=TRUE))
> system.time(glm(y ~ ., data=df))
   user  system  elapsed
  0.361   0.018    0.379

为了更具体地说明,我使用R来处理和分析大型遗传数据(800个个体x 800k SNP,其中主要的统计模型是具有几个协变量的分层GLM(2分钟);这要归功于有效的R和snpMatrix软件包中提供的C代码(相比之下,使用专用的C ++软件(plink)花费了8分钟使用相同的模型,我还进行了一项临床研究(12,000名患者x 50个相关变量),R符合我的需求最后,据我所知,lme4软件包是唯一允许将不平衡和大数据集混合效应模型拟合的软件(大型教育评估就是这种情况)。

Stata / SE是另一个可以处理大型数据集的软件。SAS和SPSS是基于文件的软件,因此它们将处理大量数据。数据挖掘工具中提供了对数据挖掘软件的比较评估:哪一种最适合CRM。对于可视化,也有很多选择。也许一个好的开始是大型数据集的图形:可视化一百万(由P Murrell在JSS中审查)以及该站点上的所有相关线程。


@chl:您是否找到了针对64位R的有效并行计算解决方案?当我上次看(这个夏末)唯一的非商业的出现则只能在32位R.
whuber

1
@whuber不。去年,我不得不切换到64位来管理大型遗传数据集,但是据我们所知,我们使用的统计模型并不要求并行化。我以为R有一个OpenMP绑定,但没有对此做进一步调查。我知道Revolution Analytics在这种意义上已经做出了努力(j.mp/d7dFb5),但是仍然是32位(这可能是您所指的)。在此期间,我找到了R / parallel(rparallel.org),但我不知道它的可靠性/成熟度。
chl 2010年

@chl我尝试了所有方法,但没有任何方法可以工作。
ub

@Whuber:您是在Windows还是* nix盒(Mac,Linux等)上
user603 2010年

2
我建议您安装ubuntu(google'download ubuntu'),并通过virtualbox(youtube.com/watch?v=KXgKnd-u2R4)从ubuntu中运行仅Windows的应用程序。R和乳胶编辑器在ubuntu上运行就像一个魅力。
user603 2010年

8

即使使用高维数据,Apache Mahout上的大多数算法也可以扩展到超过2000万条记录。如果只需要构建预测模型,则可以使用诸如Vowpal Wabbit(http://hunch.net/~vw/)之类的特定工具轻松在单个计算机上扩展成数十亿条记录。


太好了。。。我没有意识到!
chl

7

RHIPE软件包(R-Hadoop集成)。可以非常轻松地(例外)分析R中的大量数据。


你成功了吗?如果是,请问该如何申请?
chl 2010年

是的,RHIPE很棒。我的一些朋友使用它来分析互联网流量数据。他们的目标之一是为闯入尝试建立模型。在这种情况下,数据量很大,PB很常见!
suncoolsu 2010年

4

如果不知道要使用哪种模型,很难给出一个好的答案。

对于线性回归,我已成功使用R中的biglm包。


4

由于您是从大型数据集构建预测模型,因此您可能会受益于Google的BigQuery(Google的研究报告的托管版本,该研究是Google关于使用Dremel进行大规模数据集分析的研究论文)。例如,您可以将查询结果以CSV格式导出以供提取到预测性分类器中。

BigQuery具有一个WebUI,可让您运行查询和导出结果。BigQuery的Beta版(v1)具有R客户端,而正式版(v2)最终还将具有R客户端。


3

我们在具有32GB内存和4个内核的EC2实例上使用64位R训练了350万个观察值和44个功能。我们使用了随机森林,效果很好。请注意,我们必须在训练之前对数据进行预处理/处理。


3

SAS Enterprise Miner 6.2版可以轻松处理2000万个观测值,并且可以根据您的情况采用多种模型。但是,SAS的问题通常是成本。这是SAS EM可以做什么的摘要: SAS EM 6.2:新增功能



0

RHIPE是一个很好的解决方案,如果遇到此问题,我可能会选择这个解决方案!但是您考虑过NCSS吗?据我所知,最新版本10可以构建这些模型。完整版 是非常昂贵的,但是在几个远程桌面服务上,您只需要支付少量费用就可以运行该应用程序,但是我不知道..宁愿检查一下

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.