Ferramentas de software de estatística e mineração de dados para lidar com grandes conjuntos de dados


27

Atualmente, tenho que analisar aproximadamente 20 milhões de registros e criar modelos de previsão. Até agora, experimentei o Statistica, SPSS, RapidMiner e R. Entre estes, o Statistica parece ser mais adequado para lidar com mineração de dados e a interface do usuário do RapidMiner também é muito útil, mas parece que o Statistica, RapidMiner e SPSS são adequados apenas para conjuntos de dados menores .

Alguém poderia recomendar uma boa ferramenta para grandes conjuntos de dados?

Te agradece!


6
Você pode ser um pouco mais específico? O que você realmente deseja extrair de dados e como planeja fazê-lo? Eu usei o R para analisar registros de tamanho semelhantes aos seus e não foi uma experiência ruim.
suncoolsu

Esta questão será datada rapidamente. Pode ser bom ter um resumo semestral (wiki) para as últimas dessas ferramentas.
Iterator

Respostas:


19

Vou comentar em segundo lugar no @suncoolsu: a dimensionalidade do seu conjunto de dados não é o único critério que deve orientá-lo em direção a um software específico. Por exemplo, se você planeja fazer cluster não supervisionado ou usar o PCA, existem várias ferramentas dedicadas que lidam com grandes conjuntos de dados, como comumente encontrado em estudos genômicos.

Agora, R (64 bits) lida com grandes volumes de dados muito bem, e você ainda tem a opção de armazenamento em disco uso em vez de acesso RAM, mas ver CRAN Task Ver alto desempenho e computação paralela com R . GLM padrão acomodará facilmente 20.000 obs. (mas veja também speedglm ) dentro de um prazo razoável, conforme mostrado abaixo:

> 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

Para dar uma ilustração mais concreta, usei R para processar e analisar grandes dados genéticos (800 indivíduos x 800k SNPs , onde o principal modelo estatístico era um GLM estratificado com várias covariáveis ​​(2 min); isso foi possível graças ao eficiente R e Os códigos C disponíveis no pacote snpMatrix (em comparação, o mesmo tipo de modelo levou cerca de 8 minutos usando um software C ++ dedicado ( plink ) .Eu também trabalhei em um estudo clínico (12k pacientes x 50 variáveis ​​de interesse) e R se encaixa nas minhas necessidades Finalmente, até onde eu sei, o pacote lme4 é o único software que permite ajustar o modelo de efeitos mistos a conjuntos de dados grandes e desequilibrados (como é o caso da avaliação educacional em larga escala).

Stata / SE é outro software que pode lidar com grandes conjuntos de dados . O SAS e o SPSS são softwares baseados em arquivos; portanto, eles lidam com grandes volumes de dados. Uma análise comparativa do software para datamining está disponível em Data Mining Tools: Qual é o melhor para CRM . Para visualização, também há muitas opções; talvez um bom começo seja Gráficos de grandes conjuntos de dados: visualizando um milhão ( revisado no JSS por P Murrell) e todos os tópicos relacionados neste site.


@chl: Você já encontrou uma solução de computação paralela eficaz para o R de 64 bits? Quando eu última parecia (no final deste verão) os únicos não-comerciais apareceu ao trabalho apenas em 32 bits R.
whuber

1
@whuber Não. Eu tive que mudar para 64 bits no ano passado para gerenciar grandes conjuntos de dados genéticos, mas os modelos estatísticos que usamos não exigem paralelização (tanto quanto eu sei). Eu pensei que havia uma ligação OpenMP para R, mas não investiguei isso mais. Eu sei que o Revolution Analytics fez um esforço nesse sentido ( j.mp/d7dFb5 ), mas ainda em 32 bits (provavelmente é o que você se referiu). Enquanto isso, encontrei o R / parallel ( rparallel.org ), mas não sei o quão confiável / maduro ele é.
chl

@chl Eu tentei todos eles, mas não consegui fazê-los funcionar.
whuber

@Whuber: você está em janelas ou uma caixa * nix (Mac, Linux, ...)
user603

2
Eu aconselho você a instalar o ubuntu (google 'download do ubuntu') e executar seus aplicativos somente para windows a partir do ubuntu via virtualbox ( youtube.com/watch?v=KXgKnd-u2R4 ). Editores de R e látex rodam no ubuntu como um encanto.
user603

8

A maioria dos algoritmos do Apache Mahout escala muito além dos 20 milhões de registros, mesmo com dados de alta dimensão. Se você precisar criar apenas um modelo de previsão, existem ferramentas específicas, como o Vowpal Wabbit (http://hunch.net/~vw/), que podem ser facilmente escalonadas para bilhões de registros em uma única máquina.


Ótimo ... eu não estava ciente disso!
quer

7

Existe o pacote RHIPE (integração R-Hadoop). É muito fácil (com exceções) analisar grandes quantidades de dados em R.


Você tem sucesso com isso? Se sim, para que tipo de aplicação?
chl

Sim, RHIPE é ótimo. Alguns de meus amigos o usam para analisar dados de tráfego da Internet. Um de seus objetivos é modelar tentativas de invasão. Os dados são enormes nesses casos, petabytes são comuns!
suncoolsu

4

É difícil dar uma boa resposta sem saber que tipo de modelo você tem em mente.

Para regressão linear, usei com sucesso o pacote biglm em R.


4

Como você está construindo modelos preditivos a partir de grandes conjuntos de dados, você pode se beneficiar do BigQuery do Google (uma versão hospedada da tecnologia do trabalho de pesquisa do Google sobre análises massivas de conjuntos de dados com a Dremel). Você pode exportar os resultados da consulta como CSV para ingestão em um classificador preditivo, por exemplo.

O BigQuery possui uma WebUI que permite executar consultas e exportar resultados. A versão beta (v1) do BigQuery apresentava um cliente R, e a versão de produção (v2) também terá um cliente R.


3

Treinamos observações de 3,5 milhões de usuários e 44 recursos usando R de 64 bits em uma instância do EC2 com 32 GB de ram e 4 núcleos. Usamos florestas aleatórias e funcionou bem. Observe que tivemos que pré-processar / manipular os dados antes do treinamento.


3

O SAS Enterprise Miner versão 6.2 não teria problemas ao lidar com 20 milhões de observações e com uma variedade de modelos que podem ser adaptados à sua situação. O problema com o SAS geralmente é o custo. Aqui está um resumo do que o SAS EM pode fazer: SAS EM 6.2: O que há de novo



0

O RHIPE é uma ótima solução, e eu provavelmente escolheria essa, se tiver esse problema! mas você já considerou o NCSS? Até onde eu sei, a versão mais recente 10 pode criar esses modelos. A versão completa. é muito caro, mas em vários serviços de área de trabalho remota você pode executar o aplicativo apenas por uma pequena taxa, mas eu não sei .. é melhor verificar

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.