Outils logiciels de statistiques et d'exploration de données pour gérer de grands ensembles de données


27

Actuellement, je dois analyser environ 20 millions d'enregistrements et créer des modèles de prédiction. Jusqu'à présent, j'ai essayé Statistica, SPSS, RapidMiner et R. Parmi ces Statistica semble être le plus approprié pour faire face à l'exploration de données et l'interface utilisateur de RapidMiner est également très pratique, mais il semble que Statistica, RapidMiner et SPSS conviennent uniquement pour les petits ensembles de données .

Quelqu'un pourrait-il recommander un bon outil pour les grands ensembles de données?

Merci!


6
Pouvez-vous être un peu plus précis? Que voulez-vous réellement extraire des données et comment prévoyez-vous de le faire? J'ai utilisé R pour analyser des enregistrements de taille similaire à la vôtre, et ce n'était pas du tout une mauvaise expérience.
suncoolsu

Cette question va vite sortir. Il pourrait être bon d'avoir un résumé semestriel (wiki) pour les derniers outils de ce type.
Iterator

Réponses:


19

Je vais seconder le commentaire @suncoolsu: La dimensionnalité de votre ensemble de données n'est pas le seul critère qui devrait vous orienter vers un logiciel spécifique. Par exemple, si vous prévoyez de faire un clustering non supervisé ou d'utiliser PCA, il existe plusieurs outils dédiés qui font face à de grands ensembles de données, comme on le rencontre couramment dans les études génomiques.

Maintenant, R (64 bits) gère de grandes données assez bien, et vous avez toujours la possibilité d'utiliser le stockage sur disque au lieu d'accès à la RAM, mais voir CRAN Tâche Voir haute performance et calcul parallèle avec R . Le GLM standard pourra facilement accueillir 20 000 obs. (mais voir aussi speedglm ) dans un délai raisonnable, comme indiqué ci-dessous:

> 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

Pour donner une illustration plus concrète, j'ai utilisé R pour traiter et analyser de grandes données génétiques (800 individus x 800 k SNP , où le modèle statistique principal était un GLM stratifié avec plusieurs covariables (2 min); cela a été rendu possible grâce à R efficace et Codes C disponibles dans le package snpMatrix (en comparaison, le même type de modèle a pris environ 8 min en utilisant un logiciel C ++ dédié ( plink ). J'ai également travaillé sur une étude clinique (12k patients x 50 variables d'intérêt) et R correspond à mes besoins Enfin, pour autant que je sache, le package lme4 est le seul logiciel qui permet d'adapter le modèle à effets mixtes à des ensembles de données non équilibrés et volumineux (comme c'est le cas dans l'évaluation pédagogique à grande échelle).

Stata / SE est un autre logiciel qui peut gérer un grand ensemble de données . SAS et SPSS sont des logiciels basés sur des fichiers, ils gèrent donc de gros volumes de données. Une revue comparative des logiciels de datamining est disponible dans Data Mining Tools: Which One is Best for CRM . Pour la visualisation, il existe également de nombreuses options; peut-être un bon début est le graphisme de grands ensembles de données: visualiser un million ( revu dans le JSS par P Murrell), et tous les fils associés sur ce site.


@chl: Avez-vous déjà trouvé une solution de calcul parallèle efficace pour R 64 bits? La dernière fois que j'ai regardé (à la fin de l'été), les seuls non commerciaux semblaient fonctionner uniquement en R. 32 bits
whuber

1
@whuber Nope. J'ai dû passer à 64 bits l'année dernière pour gérer de grands ensembles de données génétiques, mais les modèles statistiques que nous avons utilisés n'appellent pas de parallélisation (pour autant que je sache). Je pensais qu'il y avait une liaison OpenMP pour R, mais je n'ai pas enquêté davantage. Je sais que Revolution Analytics a fait des efforts dans ce sens ( j.mp/d7dFb5 ), mais toujours en 32 bits (c'est probablement ce à quoi vous avez fait référence). J'ai trouvé R / parallel ( rparallel.org ) entre-temps, mais je ne sais pas à quel point il est fiable / mature.
chl

@chl Je les ai tous essayés, mais je n'ai réussi à faire fonctionner aucun d'entre eux.
whuber

@Whuber: êtes-vous sur Windows ou une boîte * nix (mac, linux, ...)
user603

2
Je vous conseille d'installer ubuntu (google 'download ubuntu') et d'exécuter vos applications Windows uniquement depuis ubuntu via virtualbox ( youtube.com/watch?v=KXgKnd-u2R4 ). Les éditeurs R et latex fonctionnent sur Ubuntu comme un charme.
user603

8

La plupart des algorithmes sur Apache Mahout évoluent bien au-delà de 20 millions d'enregistrements, même avec des données de grande dimension. Si vous avez seulement besoin de construire un modèle de prédiction, il existe des outils spécifiques comme Vowpal Wabbit (http://hunch.net/~vw/) qui peuvent facilement évoluer vers des milliards d'enregistrements sur une seule machine.


Génial ... je n'étais pas au courant de ça!
chl

7

Il existe le package RHIPE (intégration R-Hadoop). Il peut être très facile (à quelques exceptions près) d'analyser de grandes quantités de données dans R.


Avez-vous du succès avec ça? Si oui, pour quel type d'application?
chl

Oui, RHIPE est super. Certains de mes amis l'utilisent pour analyser les données de trafic Internet. L'un de leurs objectifs est de modéliser les tentatives d'effraction. Les données sont énormes dans de tels cas, les pétaoctets sont courants!
suncoolsu

4

Il est difficile de donner une bonne réponse sans savoir à quel type de modèles vous pensez.

Pour la régression linéaire, j'ai utilisé avec succès le package biglm dans R.


4

Étant donné que vous créez des modèles prédictifs à partir de grands ensembles de données, vous pouvez bénéficier de BigQuery de Google (une version hébergée de la technologie du document de recherche de Google sur l'analyse massive d'ensembles de données avec Dremel). Vous pouvez exporter les résultats de la requête au format CSV pour les intégrer dans un classificateur prédictif, par exemple.

BigQuery possède une interface Web qui vous permet d'exécuter des requêtes et d'exporter les résultats. La version bêta (v1) de BigQuery comportait un client R, et la version de production (v2) aura éventuellement un client R également.


3

Nous avons formé des observations de 3,5 millions et 44 fonctionnalités en utilisant R 64 bits sur une instance EC2 avec 32 Go de RAM et 4 cœurs. Nous avons utilisé des forêts aléatoires et cela a bien fonctionné. Notez que nous avons dû prétraiter / manipuler les données avant la formation.


3

SAS Enterprise Miner version 6.2 n'aurait aucun problème à gérer 20 millions d'observations, et une variété de modèles pouvant être adaptés à votre situation. Cependant, le problème avec SAS est généralement le coût. Voici un résumé de ce que SAS EM peut faire: SAS EM 6.2: Quoi de neuf



0

RHIPE est une excellente solution, et je choisirais probablement celle-ci, si vous rencontrez ce problème! mais avez-vous envisagé le NCSS? Pour autant que je sache, la dernière version 10 peut construire ces modèles. Le ver complet. est très cher, mais sur plusieurs services de bureau à distance, vous pouvez exécuter l'application uniquement pour une somme modique, mais je ne sais pas .. vérifiez plutôt cela

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.