IUT de Caen - Département STID Responsable : Alain LUCAS Data Mining Fiche de TP n o 1 - Profiling STID ème année Dans le cadre d un projet de Data Mining, il est relativement rare, sauf peut-être dans le cas d un Datawarehouse ou d un Datamart, que les données dont on a besoin soient contenues dans un même fichier (ou base de données) et/ou soient consistantes. Par ailleurs, un Data Miner doit souvent filtrer les variables et/ou les unités afin de ne sélectionner que celles pertinentes pour le projet. Enfin, il doit également, dans certain cas, construire de nouvelles variables à partir des variables existantes. Ce travail souvent long et fastidieux représente la phase de préparation des données, ou Data Preparation. Cette phase vient en aval d une autre phase non moins importante : la phase d exploration des données ou Data Understanding qui a pour objectif de mener un travail exploratoire consistant à : collecter l ensemble des sources de données pertinentes pour le projet, se familiariser avec les données, et évaluer leur qualité. Il n est pas rare que ces deux étapes représentent à elles seules 60% du temps de travail du projet de Data Mining. Enfin, il convient de souligner l importance de cette phase de préparation des données car garante d un travail à la fois sérieux, cohérent et pertinent, indispensable à l exploitation ultérieure du ou des modèles. Ce TP a pour objectif d illustrer concrètement ces deux phases. Contexte : les éditions Press sont prêtes à lancer un nouvel ouvrage, The Art History of Florence 1, sur le marché. Une réunion est alors organisée avec les responsables de chaque service (Marketing, Informatique, Statistique, et Commerciale) et le PDG afin de discuter de la mise en place d une stratégie marketing. Cette réunion entre dans le cadre de la première phase du processus de Data Mining nommée Business Understanding. 1 http ://ocw.mit.edu/ocwweb/sloan-school-of-management/15-06data-miningspring003/assignments/index.htm 1 Phase A : Business understanding A la fin de la réunion, il est finalement convenu de mettre en place une campagne de marketing direct qui consistera en quatre étapes : Etape 1 : créer un échantillon représentatif de la base de données clients selon le budget alloué pour la campagne. Etape : envoyer un courrier faisant part de la sortie de l ouvrage à chacun des individus de l échantillon. Etape 3 : créer un modèle afin de mieux cibler les acheteurs potentiels. Etape 4 : activer le modèle sur l ensemble de la base de données clients, et éventuellement sur une base de données prospects. Le lendemain, le responsable marketing vient vous voir et vous demande, en tant que chargé d études marketing, de constituer un échantillon représentatif de 4 000 clients auxquels sera envoyé un courrier faisant part de la publication de l ouvrage. Comme convenu lors de la réunion, vous avez, après un délai de deux mois, récupéré non seulement les informations concernant l achat de l ouvrage par les clients de l échantillon, mais aussi les informations concernant le comportement client, et le type d achats client. Ces informations n étant pas stockées dans une même base de données, vous disposez alors de trois fichiers : le fichier Response qui contient en particulier la réponse des clients de l échantillon à l offre marketing (achat ou non de l ouvrage), le fichier RFM qui contient les informations concernant le comportement de ces clients, et enfin le fichier Purchase qui contient les informations concernant le type d achats effectués par ces mêmes clients. Maintenant que vous disposez de toutes ces informations, il convient de mener un travail exploratoire de chacun des fichiers afin de mieux comprendre les données, et de détecter la présence éventuelle de divers problèmes. Cette seconde étape représente la seconde étape du processus de Data Mining nommée Data Understanding. Phase B : Data understanding Disposant des trois fichiers de données, il convient dans un premier temps d observer chacun des fichiers 3. Ce travail permet non seulement de faire un bilan sur d éventuels problèmes (outliers, données manquantes, données inutiles, données redondantes, etc.), mais aussi de mieux comprendre les données et ainsi d être plus efficace lors de la phase d élaboration du modèle. Dans ce but, lancer le logiciel Insightful Miner, puis créer un espace de travail vierge : create a new worksheet. Fichier Response : 1. En se référant à l annexe 1, déterminer les caractéristiques de ce fichier : (a) présence ou non du nom des variables sur la première ligne; (b) type du séparateur pour les colonnes ; (c) nombre de variables ; (d) signification des variables ; (e) type des variables ; (f) codage ou unité de chacune des variables.. Créer un noeud Read Text File, puis suivre les instructions suivantes : (a) Effectuer un double-clic sur le noeud afin d ouvrir l onglet Properties associé à ce noeud; (b) A l aide du Browse, indiquer le fichier à ouvrir; (c) Cocher ou décocher l option Read Field Names from File selon le cas de figure ; (d) Modifier l option par défaut du Delimiter selon le cas figure (pour indiquer le point-virgule comme séparateur, il convient de sélectionner User Selected, puis d indiquer le caractère ; dans la cellule de droite); (e) Cliquer sur Update Preview afin de s assurer de la bonne lecture des colonnes du fichier ; (f) Cliquer sur l onglet Modify Columns, puis changer le type des variables Gender et Yes-Florence afin de les rendre Categorical; récupérer les données sur http ://pagesperso-orange.fr/al-lucas/enseignement.html 3 cf. annexe 1 pour obtenir des informations sur les fichiers
(g) Fermer la fenêtre, nommer ce noeud Response, puis exécuter le noeud. Fichier Purchase : 1. En se référant à l annexe 1, déterminer les caractéristiques de ce fichier (cf. questions fichier Response ).. Avec un nouveau noeud Read Text File, lire le fichier de données Purchase en modifiant éventuellement le type par défaut des variables, puis nommer ce noeud Purchase. 3. A l aide du viewer, observer les caractéristiques numériques de chacune des variables. 4. Avec un noeud Chart 1-D, observer la distribution des variables pertinentes. Commenter succinctement. Fig. 1 : noeud Read Text File 3. A l aide du bouton Viewer, observer les caractéristiques numériques de chacune des variables. Observe-t-on des données manquantes? Quelle est la proportion d hommes dans l échantillon? Quelle est la proportion de clients qui ont acheté l ouvrage? 4. Créer un noeud Chart 1-D dans l espace de travail, puis relier ce dernier au noeud Response. Paramétrer le noeud Chart 1-D afin de visualiser la distribution des variables pertinentes en cochant les cases Column Chart et Percent dans l onglet Options. Compiler via le bouton Run, puis visualiser les graphiques via le bouton Viewer. Commenter succinctement les graphiques : les distributions sont-elles symétriques ou asymétriques? l asymétrie est-elle légère ou prononcée? etc. Fig. 3 : Espace de travail 5. Les deux variables ArtBks et ItalArt (resp. CookBks et ItalCook) sont deux variables qui traitent d une thématique commune. Il est alors intéressant de savoir si la première variable contient ou non la seconde, auquel cas il faut opérer une transformation afin d éviter cette pseudo-redondance. Dans ce but, relier un noeud Modify Columns au noeud Purchase, puis apporter des modifications nécessaires afin que les quatre variables citées précédemment soient continues. Exécuter le noeud. Fig. 4 : noeud Modify Column Fichier RFM : Fig. : Graphiques 1. En se référant à l annexe 1, déterminer les caractéristiques de ce fichier (cf. questions fichier Response ).. Avec un nouveau noeud Read Text File, lire le fichier de données RFM, en modifiant éventuellement le type par défaut des variables, puis nommer ce noeud RFM. 3. A l aide du viewer, observer les caractéristiques numériques de chacune des variables. 4. A l aide d un noeud Chart 1-D, visualiser la distribution des variables pertinentes. Que peut-on dire de la distribution des variables Recency et Frequency? 3 6. Relier à ce dernier un noeud Create Columns. Ouvrer ce noeud, puis suivre les étapes suivantes : cliquer sur Add ; indiquer le nom de variable New1 dans la première cellule, puis indiquer dans la seconde le type Continuous; écrire dans la troisième cellule l instruction ArtBks-ItalArt ; vérifier l expression via le bouton Parse Expressions. Reprendre les étapes précédentes, en indiquant New pour le nom de la nouvelle variable, puis en écrivant l instruction CookBks-ItalCook. Exécuter le noeud. 7. Créer un noeud Chart 1-D, puis le relier au noeud Create Columns. Observer la distribution des variables New1 et New. Commenter. 4
Ecrire dans la troisième cellule l instruction : ifelse(gender== 1, F, M ). Cette instruction se lit comme suit : si la variable Gender prend la valeur 1 alors la variable Sex prendra la valeur F, sinon elle prendra la valeur M.. Recommencer les étapes avec la nouvelle variable Response, en écrivant cette fois l instruction suivante : ifelse(get( Yes-Florence )== 1, Yes, No ) 3. Relier un noeud Chart 1-D au noeud Create Columns, puis observer le succès de l opération après avoir exécuté les noeuds. Fig. 5 : Etude de nouvelles variables Fusion des fichiers de données : Le travail exploratoire étant réalisé, il s agit maintenant de fusionner les différentes sources de données afin de créer le Business Data Set. 1. Identifier la variable commune à l ensemble des fichiers. Indiquer le rôle de cette variable.. Créer un noeud Join. Relier les noeuds Response, RFM et Purchase, à ce noeud. Ouvrir le noeud Join. Dans l onglet Properties, indiquer dans la colonne Key 1 du tableau, et ce dans les trois cellules, la variable qui va permettre de réaliser la fusion des deux fichiers. Nommer ce noeud Data Set. 3. Exécuter ce noeud, puis vérifier le succès de l opération à l aide du bouton Viewer. En particulier, on vérifiera pour deux ou trois observations que la fusion s est correctement déroulée. Phase C : Data preparation Fig. 6 : Data Set La phase de prise en main des données ayant été réalisée, il convient maintenant de préparer les données en vue de la phase de modélisation. On s intéresse dans un premier temps aux variables Gender et Yes-Florence issues du fichier Response. Il s agit ici de modifier le nom des modalités de ces variables afin de faciliter les futurs interprétations. 1. Relier un noeud Create Columns au noeud Data Set. Ouvrir le noeud, puis suivre les étapes suivantes : Cliquer sur Add ; Indiquer le nom de variable Sex dans la première cellule, puis cliquer sur la seconde et sélectionner Categorical; 5 Fig. 7 : Changement de modalités On souhaite maintenant opérer des transformations sur les variables issues du fichier RFM. En particulier, on va dans un premier temps transformer les variables Recency et Frequency en variables ordinales, et dans un deuxième temps transformer la variable FirstPurch afin d obtenir une distribution symétrique. Discrétisation de Frequency 1. Relier un noeud Modify Columns au noeud Create Columns précédent, puis modifier le type de la variable Frequency afin de la rendre qualitative.. Relier au noeud Modify Columns un noeud Create Columns, que l on nommera F-bin, puis suivre les étapes suivantes : Cliquer sur Add ; indiquer N1 dans la première cellule, puis choisir Categorical dans la seconde; écrire enfin l instruction ifelse(f== 3 F== 4 F== 5, 3-5,F) Cliquer de nouveau sur Add ; indiquer N dans la première cellule, puis choisir Categorical dans la seconde; écrire l instruction ifelse(getnew(n1)== 6 getnew(n1)== 7 getnew(n1)== 8, 6-8,getNew(N1)) Cliquer de nouveau sur Add ; indiquer F-bin dans la première cellule, puis choisir Categorical dans la seconde; écrire l instruction ifelse(getnew(n)== 9 getnew(n)== 10 getnew(n)== 11 getnew(n)== 1, 9-1,getNew(N)) 3. Cliquer sur OK, puis exécuter le noeud. 4. A l aide d un noeud Chart 1-D, vérifier le succès de l opération de discrétisation. 6
4. Relier au noeud Recency-bin un noeud Chart 1-D, puis vérifier le succès de l opération. Fig. 8 : Création de la variable F-bin Transformation de FirstPurch 1. Créer un nouveau noeud Create Columns, que l on nommera FirstPurch-sqrt, puis le relier au noeud F-bin. Ecrire les étapes suivantes : Cliquer sur Add ; indiquer FirstPurch-sqrt dans la première cellule, puis choisir Continuous dans la seconde; écrire enfin l instruction sqrt(firstpurch). Cliquer sur OK, puis exécuter le noeud. 3. Via un noeud Chart 1-D vérifier le succès de l opération. Fig. 10 : Création de la variable Recency-bin On souhaite, en accord avec le responsable marketing, opérer des transformations sur les variables du fichier Purchase. Ce fichier contient des variables dont la plupart présentent des modalités à très faible effectif. Afin d assurer la stabilité du modèle, et de faciliter les interprétations, il a été convenu avec le responsable marketing de modifier les modalités des variables d intérêt afin de les rendre binaire. Discrétisation des variables de Purchase 1. Relier un noeud Create Columns, que l on nommera Purchase-Binary, au noeud Recency-bin.. Ouvrir le noeud, puis suivre les étapes suivantes : cliquer sur Add ; entrer le nom de variable ChildBks.bin dans la première cellule, et sélectionner Categorical dans la seconde cellule ; écrire l instruction suivante dans la troisièle cellule : ifelse(childbks== 0, 0, 1+ ) Fig. 9 : Création de la variable FirstPurch-sqrt Discrétisation de Recency 1. Créer un noeud Create Columns, que l on nommera Recency-bin, puis le relier au noeud FirstPurch-sqrt.. Ouvrir le noeud Recency-bin, puis suivre les étapes suivantes : cliquer sur Add ; indiquer R-bin dans la première cellule, puis choisir Categorical dans la seconde; écrire l instruction 3. Cliquer sur OK, puis exécuter le noeud. ifelse(r<6, 1, R>=6 & R<1,, R>=1 & R<4, 3, 4 ) 7 Fig. 11 : Création des variables binaires 3. Procéder de même pour les neuf variables restantes. 4. Cliquer sur OK, puis exécuter le noeud. 5. Vérifier le succès de l opération à l aide d un noeud judicieux. Ce travail étant réalisé, il convient d effectuer un nettoyage afin d avoir un fichier de travail propre. 1. Créer un noeud Filter Columns, puis le relier au noeud Purchase-Binary. 8
. Ouvrir le noeud, puis exclure du fichier les variables : Gender, Yes-Florence, Related Purchase, N1, N, R, F, FirstPurch, ChildBks, YouthBks, CookBks, DoItYBks, RefBks, ArtBks, GeogBks, ItalCook, ItalAtlas, et ItalArt. Nommer ce noeud Business Data set. Exécuter ce noeud, puis vérifier le succès de l opération. 3. Créer un noeud Reorder Columns, puis modifier l ordre des variables afin d avoir la séquence suivante : ID, Sex, M, F-bin, R-bin, FirstPurch-sqrt, ChildBks-bin, YouthBks-bin, CookBks-bin, DoItYBks-bin, RefBks-bin, ArtBks-bin, GeogBks-bin, ItalCook-bin, ItalAtlas-bin, ItalArt-bin, Response. Nommer ce noeud Organisation des variables, puis l exécuter. 4. Afin de conserver une trace physique du travail réalisé, créer un noeud Write Text File, puis le relier au noeud Organisation des variables. Sauvegarder alors les données dans un fichier nommé TD1-datamining, en précisant le point-virgule comme séparateur. Profiling L objectif de tout le travail de préparation que l on vient de mener est de construire un modèle pour identifier les clients susceptibles d être intéressés par l ouvrage. Dans le cas présent, la modélisation va consister à identifier le profil des clients susceptibles d être intéressés par le produit. 1. Créer un noeud Chart 1-D. Relier le noeud Business Data Set à ce noeud. Sélectionner la variable Response dans la fenêtre Group By, et les variables continues M et FirstPurch-sqrt dans la fenêtre Display. Paramétrer enfin l onglet Options afin de visualiser des Boxplots (choisir Kvalue = 1000). Exécuter, puis visualiser la sortie.. Peut-on dire que l une ou l autre des variables continues présente un impact significatif sur la variable Response? 3. Créer un noeud Crosstabulate. Relier le noeud Business Data Set au noeud Crosstabulate. Paramétrer ce noeud afin de croiser les variables Sex et Response (dans cet ordre!), puis cocher la case Row Percent. Exécuter le noeud, puis visualiser la table. 4. On appelle Risque Relatif de la modalité M par rapport à la modalité F associé à la variable Sex la quantité RR sex (M F) définie par : π(sex = M) RR sex (M F) = π(sex = F) Calculer dans le cas présent ce risque relatif. 5. Donner une interprétation de cette quantité, puis préciser la sous-population qu il convient de cibler afin d améliorer la vente du produit. 6. Recommencer cette opération pour chacune des autres variables binaires, en choisissant la première modalité comme modalité référente, puis compléter le tableau suivant : Variable RR Variable RR Sex ArtBks-bin ChildBks GeogBks-bin YouthBks-bin ItalCook-bin CookBks-bin ItalAtlas-bin DoitYBks-bin ItalArt-bin RefBks-bin 7. Procéder de même pour les variables nominales F-bin et R-bin en choisissant aussi la première modalité comme modalité référente. 9. On appelle Odds Ratio de la modalité M par rapport à la modalité F associé à la variable Sex la quantité OR sex (M F) définie par : ( ) ( ) π(sex = M) π(sex = F) OR sex (M F) = / = n 1 n 1 1 π(sex = M) 1 π(sex = F) n 11 n En faisant usage d un noeud Crosstabulate, calculer dans le cas présent cet odds ratio, puis comparer cette valeur avec le risque relatif. Les deux indicateurs sont-ils concordants? 10. Donner une interprétation de cette quantité, puis préciser la sous-population qu il convient de cibler afin d améliorer la vente du produit. 11. Recommencer cette opération pour chacune des autres variables binaires, en choisissant la première modalité comme modalité référente, puis compléter le tableau suivant : Variable OR Variable OR Sex ArtBks-bin ChildBks GeogBks-bin YouthBks-bin ItalCook-bin CookBks-bin ItalAtlas-bin DoitYBks-bin ItalArt-bin RefBks-bin 1. Procéder de même pour les variables nominales F-bin et R-bin en choisissant aussi la première modalité comme modalité référente. F-bin 3-5 6-8 9-1 OR R-bin 3 4 13. En se basant sur ces odds ratios, classer les caractéristiques (variables et/ou modalités) par ordre décroissant d impact sur la variable cible. Vérifier la concordance des deux indicateurs. 14. Afin de visualiser l impact des caractéristiques retenues, créer un noeud Chart-1D, puis le relier au noeud Business Data Set. Indiquer la variable Response dans la fenêtre Display, et la première caractéristique retenue dans la fenêtre Group By. Exécuter le noeud, puis visualiser les graphiques. Ces derniers confirment-ils vos précédentes investigations? 15. Recommencer cette procédure pour chacune des caractéristiques prépondérantes par rapport à la variable cible, puis réaliser un rapport de deux pages maximum, avec éventuellement des représentations graphiques, pour présenter votre travail au conseil d administration. OR F-bin 3-5 6-8 9-1 RR R-bin 3 4 RR 8. En se basant sur ces risques relatifs, classer les caractéristiques (variables et/ou modalités) par ordre décroissant d impact sur la variable cible. En déduire alors les cinq caractéristiques sur lesquelles vous allez vous appuyer pour améliorer la vente du produit. 9 10
ANNEXE 1 Fichier Response : Ce fichier contient sur la première ligne le nom des variables, et admet le point virgule comme séparateur. ID : identifiant du client ; Gender : sexe du client (1 si c est une femme, et 0 si c est un homme) ; Response : achat de l ouvrage (1 si l ouvrage a été acheté, et 0 sinon). Fichier RFM : Ce fichier contient sur la première ligne le nom des variables, et admet le point virgule comme séparateur. R - Recency : nombre de mois écoulés depuis le dernier achat ; F - Frequency : nombre total d achats sur les 1 derniers mois ; M - Monetary : somme total d argent dépensée sur les 1 derniers mois (en dollars); FirstPurch : nombre de mois écoulés depuis le premier achat ; Fichier Purchase : Ce fichier contient sur la première ligne le nom des variables, et admet le point virgule comme séparateur. ChildBks : nombre d achats dans la catégorie Child books ; YouthBks : nombre d achats dans la catégorie Youth books ; CookBks : nombre d achats dans la catégorie Cook books ; DoItYBks : nombre d achats dans la catégorie Do it yourself books ; RefBks : nombre d achats dans la catégorie Reference books (Atlases, Encyclopedias, Dictionaries) ; ArtBks : nombre d achats dans la catégorie Art books ; GeogBks : nombre d achats dans la catégorie Geography books ; ItalCook : nombre d achats dans la sous-catégorie Italian cooking ; ItalAtlas : nombre d achats dans la sous-catégorie Atlas of Italy ; ItalArt : nombre d achats dans la sous-catégorie Italian Art ; Related Purchase : somme des achats pour les variables ArtBks, GeoBks, ItalCook, ItalAtlas, et ItalArt. 11