Strumenti software di statistica e data mining per gestire set di dati di grandi dimensioni


27

Attualmente devo analizzare circa 20 milioni di record e costruire modelli di previsione. Finora ho provato Statistica, SPSS, RapidMiner e R. Tra questi Statistica sembra essere il più adatto per gestire il data mining e l'interfaccia utente di RapidMiner è anche molto utile ma sembra che Statistica, RapidMiner e SPSS siano adatti solo per set di dati più piccoli .

Qualcuno potrebbe raccomandare un buon strumento per set di dati di grandi dimensioni?

Grazie!


6
Puoi essere un po 'più specifico? Cosa vuoi veramente estrarre i dati e come pensi di farlo? Ho usato R per analizzare record di dimensioni simili ai tuoi, e non è stata affatto una brutta esperienza.
suncoolsu,

Questa domanda verrà datata rapidamente. Potrebbe essere utile disporre di una raccolta semestrale (wiki) per le ultime novità in tali strumenti.
Iteratore

Risposte:


19

Secondo il commento di @suncoolsu: la dimensionalità del set di dati non è l'unico criterio che dovrebbe orientarti verso un software specifico. Ad esempio, se stai solo pianificando di eseguire un clustering senza supervisione o utilizzare PCA, ci sono diversi strumenti dedicati che gestiscono set di dati di grandi dimensioni, come comunemente riscontrato negli studi genomici.

Ora, R (64 bit) gestisce dati di grandi dimensioni abbastanza bene, e avete ancora la possibilità di memorizzazione su disco utilizzo al posto di accesso alla RAM, ma si veda CRAN Task View ad alte prestazioni e Parallel Computing con R . Lo standard GLM può facilmente ospitare 20.000 oss. (ma vedi anche speedglm ) entro un tempo ragionevole, come mostrato di seguito:

> 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

Per fornire un'illustrazione più concreta, ho usato R per elaborare e analizzare grandi dati genetici (800 individui x 800k SNPs , in cui il principale modello statistico era un GLM stratificato con diverse covariate (2 min); ciò è stato reso possibile grazie all'efficace R e Codici C disponibili nel pacchetto snpMatrix (in confronto, lo stesso tipo di modello ha impiegato circa 8 minuti usando un software C ++ dedicato ( plink ). Ho anche lavorato su uno studio clinico (12k pazienti x 50 variabili di interesse) e R si adatta alle mie esigenze Inoltre , per quanto ne so, il pacchetto lme4 è l'unico software che consente di adattare il modello a effetti misti a insiemi di dati sbilanciati e di grandi dimensioni (come nel caso della valutazione educativa su larga scala).

Stata / SE è un altro software in grado di gestire set di dati di grandi dimensioni . SAS e SPSS sono software basati su file, quindi gestiranno grandi volumi di dati. Una revisione comparativa del software per la datamining è disponibile in Data Mining Tools: quale è il migliore per CRM . Per la visualizzazione, ci sono anche molte opzioni; forse un buon inizio è la grafica di grandi set di dati: visualizzazione di un milione ( rivisto nel JSS da P Murrell) e tutti i thread correlati su questo sito.


@chl: hai ancora trovato un'efficace soluzione di calcolo parallelo per R a 64 bit? L'ultima volta che ho guardato (fine di questa estate) gli unici non commerciali sembravano funzionare solo in R. a 32 bit
whuber

1
@whuber No. L'anno scorso ho dovuto passare a 64 bit per gestire grandi set di dati genetici, ma i modelli statistici che abbiamo usato non richiedono parallelizzazione (per quanto ne so). Ho pensato che ci fosse un'associazione OpenMP per R, ma non ho approfondito ulteriormente. So che Revolution Analytics ha fatto uno sforzo in questo senso ( j.mp/d7dFb5 ), ma ancora a 32 bit (questo è probabilmente ciò a cui hai fatto riferimento). Nel frattempo ho trovato R / parallel ( rparallel.org ), ma non so quanto sia affidabile / maturo.
chl

@chl Li ho provati tutti ma non sono riuscito a farli funzionare.
whuber

@Whuber: sei su Windows o su una * nix box (mac, linux, ...)
user603

2
Ti consiglierei di installare Ubuntu (google 'download ubuntu') e di eseguire le tue app solo per Windows da Ubuntu tramite VirtualBox ( youtube.com/watch?v=KXgKnd-u2R4 ). Gli editor di R e latex funzionano su Ubuntu come un fascino.
user603

8

La maggior parte degli algoritmi su Apache Mahout va oltre i 20 milioni di record, anche con dati ad alta dimensione. Se hai solo bisogno di costruire un modello di previsione, ci sono strumenti specifici come Vowpal Wabbit (http://hunch.net/~vw/) che possono facilmente scalare a miliardi di record su una singola macchina.


Fantastico ... non ne ero a conoscenza!
chl

7

Esiste il pacchetto RHIPE (integrazione R-Hadoop). È possibile rendere molto semplice (con eccezioni) l'analisi di grandi quantità di dati in R.


Hai successo con esso? Se sì, per quale tipo di applicazione?
chl

Sì, RHIPE è fantastico. Alcuni dei miei amici lo usano per analizzare i dati sul traffico Internet. Uno dei loro obiettivi è quello di modellare i tentativi di intrusione. In questi casi i dati sono enormi, i petabyte sono comuni!
suncoolsu,

4

È difficile dare una buona risposta senza sapere che tipo di modelli hai in mente.

Per la regressione lineare, ho usato con successo il pacchetto biglm in R.


4

Dal momento che stai costruendo modelli predittivi da grandi set di dati, potresti trarre vantaggio da BigQuery di Google (una versione ospitata della tecnologia dal documento di ricerca di Google sull'analisi del set di dati di massa con Dremel). Ad esempio, è possibile esportare i risultati della query come CSV per l'importazione in un classificatore predittivo.

BigQuery ha un'interfaccia utente Web che ti consente di eseguire query ed esportare i risultati. La versione beta (v1) di BigQuery presentava un client R, e la versione di produzione (v2) alla fine avrà anche un client R.


3

Abbiamo addestrato osservazioni da 3,5 M e 44 funzionalità utilizzando R a 64 bit su un'istanza EC2 con RAM da 32 GB e 4 core. Abbiamo usato foreste casuali e ha funzionato bene. Si noti che abbiamo dovuto preelaborare / manipolare i dati prima dell'allenamento.


3

SAS Enterprise Miner versione 6.2 non avrebbe problemi a gestire 20 milioni di osservazioni e una varietà di modelli che possono essere adattati alla tua situazione. Il problema con SAS è di solito il costo comunque. Ecco un riepilogo di ciò che SAS EM può fare: SAS EM 6.2: Novità



0

RHIPE è un'ottima soluzione e probabilmente sceglierei questo, se avessi questo problema! ma hai considerato NCSS? Per quanto ne so, la versione 10 più recente può creare questi modelli. La versione completa è molto costoso, ma su diversi servizi di desktop remoto è possibile eseguire l'app solo per una piccola tassa ma non lo so .. piuttosto dai un'occhiata

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.