R et Azure ML Studio
Objectif du chapitre
Dans les chapitres précédents, nous avons développé des modèles de régression et de classification en utilisant des algorithmes prédéfinis dans l’environnement Azure ML. En effet, les algorithmes les plus connus et les plus communément utilisés sont bien présents dans Azure ML Studio.
Cependant, même si les algorithmes prédéfinis sont souvent utilisés avec succès, le Data Scientist aime développer ses propres algorithmes ou développer une approche particulière pour la phase de préparation des données, ou encore développer un outil pour réaliser une tâche personnalisée. Dès lors, le besoin d’étendre l’environnement Azure ML s’avère être nécessaire.
L’objectif de ce chapitre est justement d’étudier les possibilités d’extension de l’environnement Azure ML avec des scripts R. Cette extension peut être réalisée avec quatre méthodes différentes en fonction des besoins. Ce chapitre donnera les détails de chacune de ces méthodes.
Ce chapitre est organisé comme suit : la section Le module Execute R Script décrit en détail les possibilités de développer et d’importer des scripts R dans Azure ML en utilisant le module...
L’interpréteur R et RStudio
1. Installation de l’interpréteur R et de RStudio
R est un langage libre et open source. Il est l’un des langages les plus utilisés pour mener des études statistiques et réaliser des représentations graphiques. Son installation est relativement simple, il suffit de se rendre à l’adresse https://cran.r-project.org/, puis de télécharger et lancer l’exécutable correspondant à la version de votre système d’exploitation. Pour être sûr du bon déroulement de l’installation, lancez R et saisissez une opération simple telle que 1 + 1. Si le résultat est affiché correctement, sans erreur, alors l’installation de R a bien été effectuée avec succès.
Une fois que vous avez installé R, il est intéressant d’installer RStudio. En effet, contrairement à R qui fonctionne en mode console, RStudio propose une interface graphique ergonomique qui facilite et rend agréable le développement des scripts R. Pour installer l’environnement RStudio, il suffit de se rendre à l’adresse https://www.rstudio.com/, puis de télécharger et lancer l’exécutable correspondant à votre système d’exploitation.
2. Description de l’environnement RStudio
Lancez RStudio et cliquez...
Le module Execute R Script
Le module Execute R Script est dédié à l’écriture et à l’importation des scripts R dans une expérience Azure ML. Ce composant peut être utilisé avec trois méthodes différentes, à savoir :
1. |
En insérant le code R directement dans un module Execute R Script. |
2. |
Par un simple copier/coller du code R à partir d’un script R ou de RStudio vers un module Execute R Script. |
3. |
Par l’injection d’un fichier .zip contenant toutes les ressources R que nous souhaitons intégrer. |
L’environnement Azure ML peut également être étendu en utilisant des scripts Python. Dans ce chapitre, nous allons nous intéresser uniquement à l’intégration des scripts R. Cependant, il est intéressant de noter que l’intégration des scripts Python se fait exactement de la même manière que l’intégration des scripts R.
Quelle que soit la méthode utilisée parmi les trois citées ci-dessus, il est nécessaire d’instancier un module Execute R Script.
Créez une nouvelle expérience Machine Learning de type Blank Experiment et donnez-lui le nom Extension de l’environnement Azure ML puis, dans la zone de recherche située en haut du volet à gauche, saisissez Execute. Les deux modules Execute Python Script et Execute R Script apparaissent. Cliquez sur le module Execute R Script et ajoutez-le dans la nouvelle expérience.
Vous devez avoir le même résultat que la figure suivante :

Figure 10-02 : le module d’exécution des scripts R - Execute R Script
Et voilà, vous êtes maintenant prêt à écrire et/ou importer du code R dans une expérience Azure ML. Dans les sections suivantes, nous allons étudier en détail le module Execute R Script et explorer les trois méthodes citées précédemment.
1. Présentation générale du Module Execute R Script
Le module Execute R Script contient trois entrées nommées respectivement...
Créer un module R personnalisé
Dans la section précédente, nous avons vu que l’extension de l’environnement Azure ML peut être réalisée de façon simple en utilisant les modules de type Execute R Script. Ces modules permettent de développer et d’importer des scripts R. Bien que ces modules soient intéressants pour l’insertion du code R dans une expérience Azure ML, leur utilisation ne peut malheureusement pas être factorisée. En effet, les modules Execute R Script servent le plus souvent pour écrire du code R spécifique au problème en cours de modélisation. Si vous souhaitez réutiliser le code d’un module Execute R Script à un autre endroit de votre expérience ou dans une autre expérience, alors vous devrez copier/coller votre module et procéder aux modifications nécessaires pour que le nouveau module corresponde exactement aux nouveaux besoins et au nouveau contexte dans lequel il s’exécute. Cette démarche de réutilisation de code est bien évidemment une source d’erreurs à bien des égards.
Une fois développés et déployés dans Azure ML, les modules R personnalisés peuvent être utilisés exactement comme les modules prédéfinis de l’environnement Azure ML.
Au moment de la rédaction de ce livre, le développement des modules personnalisés n’est possible qu’avec le langage R. Cependant, Microsoft a officiellement annoncé l’ouverture vers d’autres langages tels que Python, pour le développement des modules personnalisés.
1. Développer un module R personnalisé
Tout au long des chapitres précédents, nous avons utilisé plusieurs modules prédéfinis pour des fins de prétraitement de données, de construction, de scoring et d’évaluation de modèles. Tous ces modules prédéfinis sont caractérisés par deux aspects distincts. L’aspect visuel et l’aspect algorithmique. L’aspect visuel est la forme d’un module du point de vue de l’interface graphique. Cette forme comprend non seulement les entrées et les sorties d’un module, mais aussi les paramètres...
Créer un modèle R personnalisé
La section précédente a montré comment créer un module personnalisé. Ce module, une fois créé, contient des entrées et des sorties qui lui permettent de collaborer avec d’autres modules dans une même expérience Azure ML. Cependant, ces modules personnalisés ne peuvent pas être utilisés de la même manière que les modules du groupe Initialize Model. Par exemple, un module personnalisé ne peut pas être utilisé comme un module de type Tow-Class Neural Network. En effet, aucune des sorties d’un module personnalisé ne peut être utilisée comme entrée à gauche d’un module de type Train Model. La raison est que les sorties des modules personnalisés ne sont pas compatibles avec l’entrée à gauche des modules Train Model, car les sorties des modules personnalisés sont de type DataSet, sauf la dernière sortie qui est de type Sortie R, alors que l’entrée à gauche d’un module Train Model est de type Untrained Model.
Pour les mêmes raisons qu’avec les modules Train Model, les modules personnalisés ne sont pas compatibles avec l’entrée à gauche des modules Score Model.
En d’autres termes, avec un module personnalisé, pour écrire un algorithme qui estime les paramètres d’un modèle à partir d’un jeu de données, et qui ensuite exécute une procédure de scoring sur un autre jeu de données, il faudrait créer le module personnalisé avec le fichier de définition XML et les ressources R adéquates. Et dans ces ressources R, il faudrait écrire au moins les trois procédures suivantes, la procédure de récupération des données, la procédure d’estimation des paramètres du modèle et la procédure de scoring pour évaluer la pertinence du modèle estimé. Bien sûr, la complexité de ces procédures dépend de la complexité des algorithmes sous-jacents. Si notre module personnalisé ne contient rien d’autre que ces trois procédures, alors l’utilisation des modules Create R Model devient intéressante...
Se connecter à Azure ML avec RStudio
Bien que Azure ML offre une souplesse d’utilisation assez remarquable, parfois le Data Scientist souhaite utiliser un environnement autre pour des développements spécifiques, ou tout simplement en raison d’habitudes. Azure ML expose une API qui permet à des outils comme RStudio de se connecter à ses espaces de travail. Une fois connecté à un espace de travail, le Data Scientist pourra utiliser les données et les services de Azure ML tout en restant dans son environnement préféré.
Pour se connecter à un espace de travail de Azure ML à partir de RStudio, il faut d’abord télécharger et installer le package AzureML. Puis, récupérer une instance de l’espace de travail avec la commande workspace comme dans le code ci-dessous :
WSId <-"****…*";
AuthToken<-"***…*";
ApiEndpoint<-"https://****.studio.*****.net";
ManagmentEndpoint<-"https://management.*****.net";
ws<-workspace(WSId, AuthToken, ApiEndpoint,ManagmentEndpoint)
La valeur de WSId est l’identifiant de l’espace de travail auquel on souhaite se connecter. Il peut être récupéré dans les paramètres de Azure ML comme dans la figure ci-dessous :
Figure 10-16 : l’identifiant de l’espace de travail...
Conclusion
Dans ce chapitre, nous avons discuté des différentes façons possibles d’étendre l’environnement Azure ML en utilisant le langage R. Nous avons vu que cette extension peut être réalisée de plusieurs façons différentes en fonction des besoins. Ainsi, nous avons abordé les quatre méthodes suivantes :
1. |
L’utilisation des modules de type Execute R Script pour insérer du code R. |
2. |
Le développement des modules personnalisés. Nous avons réalisé un exemple d’un module personnalisé qui permet de calculer la matrice de distance entre les 50 états des États-Unis. |
3. |
L’utilisation des modules de type Create R Model pour le développement d’algorithmes de Training et de Scoring. Nous avons vu que ces modules sont compatibles avec les modules de type Train Model et Score Model et peuvent être utilisés exactement comme les algorithmes prédéfinis. |
4. |
L’utilisation de l’API du Azure ML pour se connecter à un espace de travail de Azure ML à partir de l’environnement RStudio. |