Master Exploration Informatique des données Data Mining & Business Intelligence Groupe 5 Piotr BENSALEM Ahmed BENSI Evelyne CHARIFOU Priscillia CASSANDRA Enseignant Françoise FOGELMAN Nicolas DULIAN
SOMMAIRE I. Introduction...2 II. Agrégation avec le module KSC...3 1. Définition du module KSC...3 2. Préparation des données...3 3. Mise en oeuvre...3 III. Création du modèle d'appétence...6 IV. Moteur de recommandation...8 1. Contribution des variables...8 2. Analyse des Performances...8 3. Définition des profils...9 V. Conclusion...10 Data mining & BI Groupe Projet 15 1/10
I. INTRODUCTION Notre projet porte sur le thème des recommandations plusieurs fois cité en cours de Data Mining et Business Intelligence (exemple de AMAZON). Le sujet est «l exploitation de tickets de caisse pour score d appétence produits». Comme dans le cas pratique, il s agit de données volumineuses (400 K transactions). Le but de notre projet est la manipulation des données grâce au module KSC (Kxen Sequence Coder) du logiciel de datamining KXEN Analytical Framework. En effet, nous allons utiliser la fonctionnalité d'agrégation pour traiter les tickets de caisse d'un hypermarché. Puis nous allons construire des scores d'appétence sur les différents produits afin de mettre en place un moteur de recommandation. Le présent rapport détaille les démarches effectués et les résultats obtenus. Data mining & BI Groupe Projet 15 2/10
II. Agrégation avec le module KSC 1. Définition du module KSC Nous utilisons KSC afin de manipuler des données. KXEN Sequence Coder (KSC) construit automatiquement une table représentant la succession ordonnée d évènements à partir des données disponibles (un log web par exemple). KSC traite les données pour construire un modèle analytique en utilisant des séquences d'évènements. KSC agrège des transactions en calculs et en évènements pour améliorer la qualité du modèle avec les détails de données de transaction : - KSC crée de nouvelles colonnes avec un compte par type d'évènements - KSC crée de nouvelles colonnes avec les transitions entre les évènements - KSC organise les données transactionnelles pour permettre une modélisation en temps réel. 2. Préparation des données Nous avons appris que pour pouvoir manipuler des données sous KXEN, il est nécessaire d'utiliser une base de données. Malheureusement, nous n'avons pas eu accès à une base de données à partir de Windows. Ms Excel ne gérant pas les fichiers volumineux (excédant 65K lignes), nous avons utilisé le logiciel HJSplit qui nous a permis de partitionner le fichier généré par KSC (136K lignes après agrégation). Afin de réaliser l'agrégation, nous avons créé une variable contenant une fausse date qui nous permettra de transposer la variable DEPARTEMENT. La colonne ajoutée a au fichier de données contient la même valeur pour tous les enregistrements. Le fichier généré par KSC ne contiendra alors que les agrégations par comptes de produits achetés par DEPARTEMENT. 3. mise en oeuvre Pour utiliser le module KSC, nous avons besoin des trois fichiers suivants : - sales_customer_ref_desc : fichier de description - sales_by_customer_withdate : contient les transactions par client avec la fausse date - sales_customer_ref : contient les identifiants des clients (custemer_id) Data mining & BI Groupe Projet 15 3/10
Après avoir sélectionné ces fichiers, nous avons réalisé à l'aide de l'interface graphique de Kxen une jointure entre les tables sales_by_customer_withdate et sales_customer_ref sur la variable CUSTOMER_ID. La transposition de la variable DEPARTEMENT se fait par rapport aux dates, nous avons donc sélectionné la colonne DATE comme colonne d'évènement. Data mining & BI Groupe Projet 15 4/10
Après l'analyse, nous avons sélectionné la case count pour la colonne DEPARTEMENT afin d'obtenir la transposée de cette seule variable. Data mining & BI Groupe Projet 15 5/10
III. Création du modèle d'appétence Nous avons généré avec Kxen un script permettant d'appliquer un modèle d'appétence pour chaque département. Pour créer ce modèle, nous avons utilisé comme variables cibles, les variables contenant les comptes des produits achetés par département. Il s'agit des variables créées par KSC que nous avons transformées en variables binaires. La variable vaut 0 si elle égale à 0 et 1 dans le cas contraire. Parmi les variable obtenues, certaines variables vont été exclues car, contenant la même valeur pour tous les enregistrements. Les variables exclues sont les suivantes : ksc_t1_coffee_dairy_departement ksc_t1_kosher_kosher_departement ksc_t1_kxother_department Data mining & BI Groupe Projet 15 6/10
Nous avons obtenu avec ce modèle de très bons indices de précision et de robustesse, en effet le KI est supérieur ou égal à 0.98 pour toutes les variables cibles. On constate, avec une fréquence d'achat de 97,08% de la population, que le département Dairy représenté par la variable ksc_c0_dairy_department se situe parmi ceux dont les produits sont le plus achetés. Data mining & BI Groupe Projet 15 7/10
IV. Moteur de recommandation 1. Contribution des variables Lorsque nous lancons KSC, il nous génére des variables de sortie, les variables cibles. Elles sont crées grâce aux variables d'entrée, les variables explicatives. Pour notre modèle, nous voyons grâce à ce schéma, la relation qu'il y a entre ces variables d'entrée et celles de sortie : la variable cible ksc_t1_bakery_cheese_departement est exliquée à 77,85% par la variable CUSTOMER_ID. 2. Analyse des courbes de performance Data mining & BI Groupe Projet 15 8/10
Sur la figure ci-dessus, la courbe rouge représente les résultats d'une classification aléatoire. La courbe jaune illustre la validation du modèle et la courbe bleue l'estimation. La courbe verte (Wizard) est le résultat de la classification de KXEN. Sur la figure, setrouve en abscisse le numéro des clients, rangés par groupes. En ordonnée, il y a le profit détecté, c'est-à-dire la probabilité de trouver les personnes cherchées. Ici, on analyse la variable ksc_t1_dairy_fruit_departement. Si on prend les numéros de clients sélectionnés en rouge, on aura 35% des clients qui ont achetés des 'Dairy' et après des 'Fruit', sur notre échantillon de validation, grâce à l'outil KXEN, alors qu'il y aurait seulement 18% avec une méthode aléatoire. 3. Définition des profils Lorsque nous avons lancé le moteur KSC sur la variable département, en regroupant par numéro de client (CUSTOMER_ID), nous avons obtenu deux types de variables : ksc_c0_fruit_departement ksc_t1_dairy_fruit_departement Ces deux types correspondent aux varibles ksc : C0 : représente la varible Count de KSC, elle vaut 1 si le client a acheté le produit en question, ici 'Fruit', 0 sinon T1 : représente les variables de transitions générées par le moteur elle vaut 1 si un client à acheter la séquence Dairy-Fruit, 0 sinon Produits Recommandation Acheté Cible OUI NON Fruits Fruits x Laitiers Fruits x surgelés Fruits x BIO Fruits x BIO surgelés x Etc Data mining & BI Groupe Projet 15 9/10
V. CONCLUSION Au terme de ce projet nous avons été très satisfait de la cohérence des résultats obtenus. En effet certains «préjugés» sur les types de population ont été confirmés. Comme par exemple les personnes qui achètent des produits bios n achètent pas de surgelés, donc inutile de leur recommander. Par ailleurs nous avons remarqué que KXEN était parfaitement adapté pour traiter ce genre de projet. Malheureusement nous n avons pas pu avoir accès à une base à partir de KXEN. Nous avons du utiliser d autres outils pour arriver à nos fins ce qui est dommage. Data mining & BI Groupe Projet 15 10/10