Réaliser un clustering des clients avec Azure Data Factory et Azure Machine Learning Studio

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 :

  1. Azure Machine Learning: Déployer le modèle de clustering des clients
  2. 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.

Pic01

Voici le résultat du déploiement de l’expérience en tant que service web :

Pic02.png

On aura besoin de ces deux informations : API KEY et Batch URI dans l’étape suivante.

Pic03

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.

Pic04

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.

Pic05

  • 2- Création du jeu de données d’entrée : ClientClusteringInputBlob

Pic06

Le jeu de données est un fichier plat déposé sur le blob storage.

Pic07.png

  • 3- Création du jeu de données de sortie : ClientClusteringResultBlob

Pic08

  • 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.

Pic09

On précise ici l’URL du point de terminaison (mlEnpoint ) et la clé de l’API.

Pic10.png

  • 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.

Pic11.png

Récupérer le code sur la page :

https://docs.microsoft.com/en-us/azure/data-factory/v1/data-factory-azure-ml-batch-execution-activity

Modifier inputs, outputs et linkedservicename, web service input et output.

Voici notre pipeline PredictivePipeline :

Pic12.png

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.

Pic13.png

Les fichiers de résultats sont stockés sur le Blob Storage.

Pic14.png

Chaque fichier contient l’association de l’identifiant du client à son segment (« cluster »).

Pic15.png

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

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

w

Connexion à %s