Quelles sont les contraintes de mémoire de R?


10

En examinant la « modélisation prédictive appliquée », un réviseur déclare :

Une critique que j'ai de la pédagogie de l'apprentissage statistique (SL) est l'absence de considérations de performance de calcul dans l'évaluation des différentes techniques de modélisation. Avec ses efforts sur le bootstrap et la validation croisée pour ajuster / tester les modèles, SL est assez gourmand en calcul. Ajoutez à cela le rééchantillonnage intégré à des techniques telles que l'ensachage et le renforcement, et vous avez le spectre de l'enfer du calcul pour l'apprentissage supervisé de grands ensembles de données. En fait, les contraintes de mémoire de R imposent des limites assez sévères à la taille des modèles qui peuvent être ajustés par des méthodes très performantes comme les forêts aléatoires. Bien que SL fasse un bon travail d'étalonnage des performances du modèle par rapport à de petits ensembles de données, il serait certainement agréable de comprendre les performances par rapport au coût de calcul pour les données plus volumineuses.

Quelles sont les contraintes de mémoire de R et imposent-elles des limites sévères à la taille des modèles qui peuvent être ajustés par des méthodes les plus performantes comme les forêts aléatoires ?


Réponses:


10

Comme Konstantin l'a souligné, R effectue tous ses calculs dans la mémoire du système, c'est-à-dire la RAM. Par conséquent, la capacité de la RAM est une contrainte très importante pour les opérations à forte intensité de calcul dans R. Surmonter cette contrainte, les données sont stockées ces jours-ci dans des systèmes HDFS, où les données ne sont pas chargées dans la mémoire et le programme est exécuté à la place, le programme va aux données et effectue les opérations, surmontant ainsi les contraintes de mémoire. RHadoop ( https://github.com/RevolutionAnalytics/RHadoop/wiki ) est le connecteur que vous recherchez.

En ce qui concerne l'impact sur les algorithmes à forte intensité de calcul, les méthodes Random Forests / Decision Trees / Ensemble sur une quantité considérable de données (minimum 50 000 observations selon mon expérience) prennent beaucoup de mémoire et sont considérablement lentes. Pour accélérer le processus, la parallélisation est la voie à suivre et la parallélisation est intrinsèquement disponible dans Hadoop! C'est là que Hadoop est vraiment efficace.

Donc, si vous optez pour des méthodes d'ensemble qui demandent beaucoup de calcul et sont lentes, vous voudrez essayer le système HDFS qui offre une amélioration considérable des performances.


1
+1 Merci d'avoir pris le temps d'améliorer la réponse existante, et étant donné qu'à mon avis votre réponse est maintenant la meilleure réponse, j'ai choisi votre réponse comme réponse. À votre santé!
bévue le

Heureux de répondre!
binga

8

R effectue tous les calculs en mémoire, vous ne pouvez donc pas effectuer d'opération sur un ensemble de données plus grand que la quantité de RAM disponible. Cependant, il existe certaines bibliothèques qui permettent le traitement des données volumineuses à l'aide de R et l'une des bibliothèques populaires pour le traitement des données volumineuses comme Hadoop.


3

Cette critique n'est plus justifiée:

S'il est vrai que la plupart des bibliothèques R standard et les plus respectées étaient limitées aux calculs en mémoire, il existe un nombre croissant de bibliothèques spécialisées pour traiter les données qui ne tiennent pas en mémoire.
Par exemple, pour les forêts aléatoires sur de grands ensembles de données, vous avez la bibliothèque bigrf. Plus d'informations ici: http://cran.r-project.org/web/packages/bigrf/

Un autre domaine de croissance est la connectivité de R à des environnements de Big Data comme Hadoop, qui ouvre un autre monde de possibilités.

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.