Utiliser un model ML entrainé en R avec PowerBI

Cet article fait suite au précédent article dans lequel j’explique comment envoyer un model entrainé dans Azure ML. Le principe sera plus ou moins le même ici sauf qu’il s’applique cette fois-ci à Power BI Smile .

Nous allons donc tout d’abord créer un modèle entrainé en R et l’enregistrer sur le disque. Reprenons par exemple le modèle de classification d’iris :

library(mda)

data(iris)

fit <- mda(Species~., data=iris)

save(fit, file = "C:/model.rda")

Assurez vous que les librairies R utilisées soient bien installées (la librairie utilisée dans cet exemple est la librairie “mda”).

Une fois le modèle enregistrer sur le disque, nous allons passer à la partie Power BI. Pour rappel, depuis quelques mois Power BI permet d’intégrer du code R à plusieurs endroits :

1 – Dans les requêtes :

  • En source de données

R_source_PowerBI

  • En étape de transformation

R_transform_PowerBI

2 – Dans les visualisations via “l’élément visuel de script R”

R_visual_PowerBI

Dans cet article, nous allons utiliser le mode étape de transformation R, vous vous demandez sans doute pourquoi ? Parce qu’il permet, contrairement aux autres modes source et visualisation, d’appliquer un traitement R sur n’importe quelle source Power BI (base de données, fichiers, R source…), puis d’utiliser tous les éléments visuels Power BI sur le jeu de données (natifs, custom, R visual…). Voici le processus :

    1. Tout d’abord ouvrir Power BI Desktop et charger les données à scorer dans une requête :
      R_PowerBI_Req1
    2. Cliquer ensuite sur “Exécuter un script R” dans l’onglet “Transformer” puis copier le code R qui charge le modèle et score les données :

      library(mda)

      load("C:/model.rda")

      pred <- predict(fit, dataset)

      out <- cbind(dataset,pred)

      out

      R_PowerBI_Req2

    3. Cliquer sur OK puis renseigner le niveau confidentialité (le niveau de confidentialité doit être le même pour les deux sources, “Public” par exemple) : PowerBI_niveau_confidentialite
    4. La requête listera en suite les dataframe présents dans le code R, cliquer sur “Table” en face du dataframe “out” pour naviguer dans le résultat du script : R_PowerBI_Req3
    5. Le jeu de données avec la colonne de prédiction apparaît alors : R_PowerBI_Req4

Vous n’avez plus qu’à enregistrer votre requête, puis réaliser les visuels qui vous intéressent. Par exemple une petite matrice de confusion :

R_PowerBI_Visual

Cette démo prouve que cela fonctionne en mode desktop. Prochaine étape : tester cela en mode Power BI Services (en ligne), et surtout que le rafraichissement des données fonctionne aussi… affaire à suivre !

FADATA

Fabien Adato est Customer Engineer Data et AI chez Microsoft. Après avoir intégré la société CGI Business Consulting où il rejoint une équipe dédiée à la Business Intelligence, il fait ses premières armes sur la solution Microsoft SQL Server. Pendant plus de 4 ans, il acquiert des compétences techniques et fonctionnelles sur toute la chaîne de valeur de la BI (ETL, Base de Données, Cube Olap et Rapport). Il a pu se spécialiser également sur de nouvelles technologies de la Data et notamment Hadoop, Pig et Hive, ainsi que des technologies self-service BI, le No-SQL comme la base de données MongoDB et le moteur d’indexation ElasticSearch. Il entre chez AZEO en 2014 puis Avanade en 2021 puis Microsoft en 2021 pour y assurer le poste de CE DATA / AI, autour des technologies Microsoft SQL Server, Power BI et Azure Data.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.