目前,我必须分析大约2000万条记录并建立预测模型。到目前为止,我已经试用了Statistica,SPSS,RapidMiner和R。在这些Statistica中似乎最适合处理数据挖掘,并且RapidMiner用户界面也非常方便,但是Statistica,RapidMiner和SPSS似乎仅适用于较小的数据集。
谁能为大型数据集推荐一个好的工具?
谢谢!
目前,我必须分析大约2000万条记录并建立预测模型。到目前为止,我已经试用了Statistica,SPSS,RapidMiner和R。在这些Statistica中似乎最适合处理数据挖掘,并且RapidMiner用户界面也非常方便,但是Statistica,RapidMiner和SPSS似乎仅适用于较小的数据集。
谁能为大型数据集推荐一个好的工具?
谢谢!
Answers:
我第二个@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中审查)以及该站点上的所有相关线程。
即使使用高维数据,Apache Mahout上的大多数算法也可以扩展到超过2000万条记录。如果只需要构建预测模型,则可以使用诸如Vowpal Wabbit(http://hunch.net/~vw/)之类的特定工具轻松在单个计算机上扩展成数十亿条记录。
有RHIPE软件包(R-Hadoop集成)。可以非常轻松地(例外)分析R中的大量数据。
由于您是从大型数据集构建预测模型,因此您可能会受益于Google的BigQuery(Google的研究报告的托管版本,该研究是Google关于使用Dremel进行大规模数据集分析的研究论文)。例如,您可以将查询结果以CSV格式导出以供提取到预测性分类器中。
BigQuery具有一个WebUI,可让您运行查询和导出结果。BigQuery的Beta版(v1)具有R客户端,而正式版(v2)最终还将具有R客户端。
SAS Enterprise Miner 6.2版可以轻松处理2000万个观测值,并且可以根据您的情况采用多种模型。但是,SAS的问题通常是成本。这是SAS EM可以做什么的摘要: SAS EM 6.2:新增功能
您可以看一下ScaVis(http://jwork.org/scavis)吗?我没有看20M,但是您可以尝试检查一下。