2017-06-19 1 views
0

Je travaille avec des modèles prédictifs dans R et je suis en utilisant le package mgcv. Le modèle prédictif actuel fonctionne avec GAM. Cependant, en utilisant R prend beaucoup de jours et je voudrais optimiser la commande.Paralléliser prédire dans R

Je fais des recherches sur le parallélisme avec Hadoop et Spark R. J'ai trouvé la commande predict sur Spark R, mais je ne pense pas qu'elle ait le GAM. Pourriez-vous me dire s'il y a moyen de faire avancer la prédiction que nous utilisons dans R, avec le parallélisme et l'utilisation de GAM? En d'autres termes, puis-je exécuter le code R ci-dessous en utilisant un cluster avec (par exemple) 4 nœuds?

PS: il y a la possibilité d'utiliser Azure, HDInsight

PS2: le code qui prend à beaucoup de temps (en cours d'exécution en fait juste au serveur R, en utilisant seulement 1 machine à)

cl <- makeCluster(detectCores()-1) 

predict_x <- predict("FORMULA_X", newdata=database_x, 
        type="response", se=TRUE, cluster=cl) 

FORMULA_X et database_x déjà déterminé

Répondre

0

Si vous souhaitez paralléliser le modèle d'entraînement avec Spark, vous ne pouvez pas utiliser les packages R standard et vous devez utiliser Spark MLlib. Voici la liste des algorithmes pris en charge: https://spark.apache.org/docs/latest/sparkr.html#machine-learning

Vous pouvez également essayer une autre bibliothèque R parallélisme de soutien: http://docs.h2o.ai/h2o/latest-stable/index.html

Option la plus complexe est d'implémenter votre algorithme en utilisant Spark RDD ou DataFrame opérations.

La raison en est que vous devez avoir une implémentation dédiée pour le modèle de formation qui permet le parallélisme.