2017-09-03 4 views
-1

Existe-t-il un moyen de paralléliser plusieurs algorithmes ML dans Spark. Mon cas d'utilisation est quelque chose comme ceci: A) Exécuter plusieurs algorithmes d'apprentissage automatique (Naive Bayes, ANN, Random Forest, etc.) en parallèle. 1) Valider chaque algorithme en utilisant une validation croisée 10 fois B) Alimenter la sortie de l'étape A) dans l'algorithme d'apprentissage automatique de deuxième couche. Ma question est: Pouvons-nous exécuter plusieurs algorithmes d'apprentissage automatique à l'étape A en parallèle? Peut-on faire une validation croisée en parallèle? Par exemple, exécuter 10 itérations de formation de Naive Bayes en parallèle?Apache Spark: Parallélisation de plusieurs algorithmes d'apprentissage automatique

Je n'ai pas trouvé de moyen d'exécuter l'algorithme différent en parallèle. Et il semble que la validation croisée ne puisse pas non plus se faire en parallèle. J'apprécie toute suggestion pour paralléliser ce cas d'utilisation.

Répondre

0

Je trouve généralement les gens confus avec un mot distribué. Tout langage de programmation ou algorithme ML n'est pas distribué. Cela dépend de la collection des moteurs d'exécution (structures de données). Par exemple Scala n'est pas distribué ou plus spécifiquement les collections de Scala ne sont pas distribuées. Les outils de Big Data comme Spark font que la collection est distribuée et qu'elle est enveloppée dans ses propres structures de données et oui je parle de RDD, Dataframes, LableledPoints, Vectors. Ces structures rendent le calcul parallèle qui dépend encore des Partitions.

Pour répondre à votre question, oui, nous pouvons exécuter l'apprentissage automatique en mode parallèle, car les données sur lesquelles un apprentissage automatique sera fourni sont réparties entre les nœuds d'un certain cluster de taille n.