Contexte
Dans cet article, nous allons segmenter une base de données clients pour créer des sous-ensembles de clients difficiles à identifier à l’œil nu, en utilisant l’algorithme de clustering K-Means. Cela peut aider le service Marketing à cibler un groupe spécifique de clients.
Le clustering, est une méthode d’apprentissage automatique non supervisée, qui consiste à séparer des données, en constituant des groupes homogènes. Le but est de minimiser la distance entre les observations du même groupe et de maximiser la distance entre les groupes.
Pour réaliser ce clustering, nous allons utiliser le service Azure Data Factory et nous avons besoin de créer un service web sous Azure Machine Learning Studio.
Azure Data Factory
(voir présentation de l’outil)
Azure Data Factory est un service d’intégration de données dans le cloud Microsoft Azure, qui gère et automatise le déplacement et la transformation des données. Pour cet article, nous avons utilisé la version 1 de Azure Data Factory.
Une Azure Data Factory est composée de :
- Services liés
- Jeux de données
- Pipeline
- Activité
Azure Machine Learning Studio
(voir présentation de l’outil)
Azure Machine Learning Studio est un service qui permet de générer, tester et déployer des solutions d’analyses prédictives.
Pour mettre en place cette solution, il y a deux grandes étapes à réaliser :
- Azure Machine Learning: Déployer le modèle de clustering des clients
- Azure Data Factory: Consommer le Web Service Azure Machine Learning
Azure Machine Learning: Déployer le modèle de clustering des clients
Dans Machine Learning Studio, nous créons une expérience qui exécute un script R appelant la méthode de clustering K-Means.
Nous avons publié notre expérience comme un service web Azure. Nous pouvons dès à présent envoyer des données à notre modèle via les points de terminaison de service web et recevoir des prédictions de résultats pour le modèle.
Voici le résultat du déploiement de l’expérience en tant que service web :
On aura besoin de ces deux informations : API KEY et Batch URI dans l’étape suivante.
Azure Data Factory: Consommer le Web Service Azure Machine Learning
Notre Azure Data Factory va :
- obtenir le fichier CSV qui contient la liste des clients,
- ensuite appeler l’API d’exécution par lot Azure Machine Learning
- et enfin copier le résultat d’exécution dans le compte Azure Storage sous forme d’un fichier CSV.
Le diagramme suivant illustre les différents composants de notre Data Factory.
C’est le pipeline PredictivePipeline qui invoquera le modèle Azure Machine Learning. Pour cet article, on utilise Azure Blob Storage pour stocker les données d’entrée et de sortie.
La création de notre Azure Data Factory se résume en 5 étapes :
- 1- Création du service liépour le compte Azure Storage. On va utiliser le même compte de stockage pour les données d’entrées et de sortie, pour cela on va créer un seul service lié en fournissant la chaine de connexion de notre compte de Stockage.
- 2- Création du jeu de données d’entrée : ClientClusteringInputBlob
Le jeu de données est un fichier plat déposé sur le blob storage.
- 3- Création du jeu de données de sortie : ClientClusteringResultBlob
- 4- Création d’un service liéde type AzureMLLinkedService en fournissant la clé API et l’URL d’exécution par lots du modèle.
On précise ici l’URL du point de terminaison (mlEnpoint ) et la clé de l’API.
- 5- La dernière étape est la créationdu pipeline contenant une activité de type AzureMLBatchExecution, qui va utiliser le Batch URI et l’API Key de notre Service Web. Un pipeline peut enchainer plusieurs activités.
Le mlEndpoint correspond à la méthode POST du batch.
Récupérer le code sur la page :
Modifier inputs, outputs et linkedservicename, web service input et output.
Voici notre pipeline PredictivePipeline :
On a ici choisi que le pipeline s’exécute tous les 3 jours.
A travers la fonctionnalité Monitor & Manage, disponible sur le Portail Azure pour la version 1 d’Azure Data Factory, on peut visualiser l’historique d’exécution (Statut, Date de début, Date de fin, Durée d’exécution …) de tous nos pipelines.
Les fichiers de résultats sont stockés sur le Blob Storage.
Chaque fichier contient l’association de l’identifiant du client à son segment (« cluster »).
Voilà, nous avons réalisé un clustering avec le langage R en utilisant Azure Data Factory et Azure Machine Learning.
Vous pouvez effectuer régulièrement une segmentation de vos clients juste en planifiant l’exécution de la Data Factory. Vous pouvez aussi visualiser les résultats dans un outil de reporting comme Microsoft Power BI (voir présentation de l’outil) pour comprendre les comportements des clients et décrire précisément les groupes obtenus.
L’exploitation de ces données et de cet algorithme au travers de Power BI fera l’objet d’un prochain article de ce blog.
Article rédigé par Wafa BEN AISSA