Data Science pour le Marketing : Segmentation Clients (2/4)

Miljan Stojiljkovic
8 min readFeb 25, 2021

--

J’ai décidé de rédiger une série d’articles expliquant un projet de segmentation client en Data Science.

Dans l’article précédent, je faisais une analyse exploratoire des données de transaction d’une entreprise britannique d’e-commerce. Dans cet article, je vais présenter les différentes opérations de nettoyage de données ainsi que la création d’une nomenclature produit à partir de la description. Même si je traite des opérations très spécifiques à ce projet, vous pourriez tout de même rencontrer des problématiques très similaires. Il est donc important de bien pouvoir se projeter sur son propre projet de segmentation clients.

Rappel des différentes étapes du projet :

  • Analyse exploratoire
  • Nettoyage des données
  • Taggage des produits (Création de catégories de produits)
  • Création de champs personnalisés (Feature Engineering)
  • Création des segments clients
  • Entrainement d’un modèle de Machine Learning
  • Développement d’un Dashboard

Étape 2 : Nettoyage des données

Dans cette partie, je vais nettoyer la base de données initiale pour que les résultats finaux reflètent au plus près la réalité du business. Le nettoyage sera propre à ce projet en particulier mais les grandes étapes sont les mêmes pour la majorité des entreprises. Seuls les détails pourront varier. J’espère en tout cas que cela pourra vous inspirer pour détecter vous-même un nettoyage qui s’avère essentiel. Chaque business est différent et le Data Scientist qui va s’occuper de votre projet va découvrir les données qui doivent être nettoyées dans son analyse exploratoire. Cependant, le porteur du projet doit être en mesure d’aiguiller le Data Scientist pour à la fois accélérer le projet mais aussi garantir une meilleure qualité des données. Cette étape est donc cruciale pour avoir de solides fondements pour la suite du projet. Mon but ici est d’exprimer la réflexion d’un Data Scientist dans ce genre de projet pour faire converger le Marketing et la Data vers un objectif commun.

1- Code Produit

Comme évoqué dans l’article précédent, on retrouve dans cette base de données des transactions qui ne représentent pas directement la vente d’un produit. Nous avons par exemple, POST pour les frais de livraisons, D (Discount) pour les remises effectuées ou encore BANK CHARGES qui représente des frais bancaires. Ces informations peuvent être assez pertinentes, nous allons stocker les frais de livraisons ainsi que les remises possibles sur les produits dans des nouveaux champs caractérisant la transaction. De ce fait, nous allons supprimer toutes les transactions avec ces codes spéciaux pour ne garder que les transactions de produits.

Ces codes sont spécifiques à notre projet mais chaque entreprise possède sa propre facturation et ses codes.

2- Commandes annulées

Dans notre cas, lorsque l’on analyse les quantités, on remarque qu’il y a de nombreuses lignes avec des quantités négatives. De prime abord, on pourrait se dire que ce sont des valeurs erronées et qu’il faudrait les corriger. Cependant en y regardant de plus près, comme dans tout business, il existe des commandes annulées ou bien remboursées. En effet, c’est comme cela que j’ai compris qu’il n’y avait pas que des factures mais aussi des avoirs. Pour faire calculer les valeurs monétaires des clients plus tard dans le projet, il est important de distinguer un avoir d’une facture.

Encore une fois, sans le contexte qu’un client peut instaurer il faut avoir beaucoup d’imagination et essayer de se mettre dans la peau de cette entreprise. Il faut donc repérer les transactions avec des commandes annulées, les isoler et reporter l’information dans une autre variable. En effet, cela peut nous servir plus tard à repérer des clients qui ont tendance à annuler leurs commandes. Je ne vais pas juger de la pertinence de cette information mais je préfère tout de même la conserver et laisser au marketing le soin de l’utiliser ou non. Cette opération va s’avérer assez délicate car il existe plusieurs cas de figure.

1ère situation : On trouve une quantité négative pour un produit et un client donné, il faut donc aller chercher sa contrepartie. Dans le 1er cas, le client a remboursé la totalité de sa commande, il existe donc une contrepartie avec une transaction de même montant mais cette fois-ci positive. Il faut donc supprimer les deux transactions et reporter l’information dans un nouveau champ.

2ème situation : Il existe toujours une contrepartie mais, le client n’a pas annulé la totalité de sa commande, seulement une partie. Il faut donc garder la 1ère transaction et soustraire la quantité annulée.

3ème situation : Il n’existe pas de contrepartie dans notre base. En effet, il se peut que le client ait commandé avant le périmètre d’étude de notre projet et que nous n’ayons pas accès à la contrepartie. Il faut tout de même enlever la transaction annulée.

3- Données aberrantes

“Outlier” : c’est une valeur qui se distingue énormément des autres. Pouvoir repérer les données aberrantes est un autre aspect important du travail d’un Data Scientist. On peut trouver des valeurs aberrantes sur n'importe quel type d’information. Elle peut être due à une erreur de saisie ou bien de logiciel. Par exemple, nous avons une colonne “Ville” dans nos données et un client possède la valeur “Japon”. C’est ici ce qu’on appelle une valeur aberrante. Ce type de données est facile à repérer mais nous avons aussi des données de type numérique comme une quantité ou un prix. C’est ici plus difficile à distinguer. La démarche habituelle pour repérer les valeurs aberrantes d’une quantité est de regarder l’écart-type et de fixer un seuil à ne pas dépasser. Par exemple, on peut fixer le seuil à 10 fois l’écart-type. Toutes les valeurs au dessus de ce seuil vont donc être considérées comme des valeurs aberrantes.

Données aberrantes

Pour notre projet, nous avons fait cet exercice sur la colonne “Quantity”, et nous avons donc ici les données que l’on considère comme statistiquement aberrantes. On peut y retrouver des commandes à 1500 boîtes à popcorn. Le problème qui se pose maintenant est de savoir si c’est véritablement une valeur aberrante. Le Data Scientist n’est pas expert du business en question, il ne peut donc pas statuer tout seul. En effet, il se peut qu’un des clients de cette entreprise soit un cinéma qui fait donc des grosses commandes de boîtes de popcorn. C’est pour cela que dans un projet de segmentation il est très important de travailler en étroite collaboration avec les équipes métier.

Dans notre cas, nous allons supprimer ces données pour ne pas fausser les segmentations par la suite. En effet, même si c’était de véritables clients, l’équipe marketing les connaitrait car ce sont des cas très particuliers.

Étape 3 : Taggage des produits

La nomenclature des produits a toujours été un travail très complexe pour les entreprises surtout pour l’e-commerce. Entre la nomenclature métier et la nomenclature proposée au client sur le site web, il peut y avoir un monde. Dans un projet classique, le Data Scientist va se reposer sur la nomenclature fournie par l’entreprise. Cependant, dans cette base de données, il n’y a pas de nomenclature. Je dois donc construire moi-même les catégories produits à partir des informations présentes dans la description d’un produit. Je suis convaincu que cela ne représente pas la majorité des projets.

En revanche, le travail fourni dans cette étape peut être très intéressant pour extraire de l’information de la description qui n’est pas toujours normalisée par le métier mais qui peut être intéressante pour le Marketing. Par exemple, je vais ici extraire la couleur des produits (lorsqu’elle est présente dans la description) afin d’avoir un nouveau champ “Couleur Produit”. Cette information peut-être très intéressante pour certains types d’entreprises et pour faire de la recommandation de produits complémentaires. L’entreprise vend ici des produits de décoration. Cela peut être intéressant de recommander des produits de la même couleur mais d’une autre catégorie qui irait bien avec le produit acheté initialement. Ce genre de pratique ne peut pas être mis en place si nous n’avons pas l’information sur la couleur au départ. C’est pour cela que l’extraction d’informations depuis la description peut ouvrir le champ des possibilités pour avoir des campagnes ultra précises en fonction des besoins clients et laisser place à la créativité du Marketer.

En reprenant le graphique de l’article précédent, à partir des mots les plus fréquents, on peut extraire 3 types d’informations :

  • La couleur (White, Blue, …)
  • La catégorie (Bag, Bottle, …)
  • Le design (Retrospot, Vintage, Wooden, …)

1- Extraction des couleurs

Pour extraire les couleurs de la description, le procédé est assez simple. J’ai tout d’abord créé une liste de couleurs à partir des mots les plus fréquents dans notre graphique précédent : [‘black’, ‘blue’, ‘brown’, ‘gold’, ‘green’, ‘grey’, ‘orange’, ‘pink’, ‘purple’, ‘red’, ‘silver’, ‘white’, ‘yellow’, ‘ivory’]

J’ai ensuite recherché ces termes dans chacune des descriptions. Si la couleur est présente dans la description, on attribue donc une couleur au produit. En théorie, c’est un élément qui peut être assez important pour de futures campagnes marketing mais en pratique, il n’y a pas assez souvent la couleur dans la description pour que l’information soit pertinente. En effet, il se peut qu’une autre couleur prédomine sans que nous le sachions car elle n’est pas précisée dans la description. Il y a finalement trop peu de produits dont on a pu extraire la couleur.

2- Extraction des designs

On extrait les designs de la même manière et on retrouve malheureusement le même constat. Sans informations complémentaires, c’est finalement assez difficile de construire une nomenclature produit. Nous allons pousser l’analyse plus loin pour les catégories produits.

3- Extraction des catégories

En utilisant encore une fois le même procédé d’extraction, je peux tagger 59% de la base de données avec les catégories que nous avons au préalable définies à partir des mots les plus fréquents. Il faut traiter les 41% restants.

Il est maintenant temps de sortir l’artillerie lourde en faisant appel au Machine Learning. Je vais donc me servir des 59% de la base qui possède dorénavant une catégorie. Je vais entrainer un algorithme sur ces 59% en lui donnant en entrée la description du produit et le but de l’algorithme est de me prédire une catégorie. J’ai entrainé plusieurs algorithmes pour comparer leurs performances et dans notre cas le meilleur est l’algorithme qu’on appelle Random Forest Classifier avec 96% de précision sur nos données d’entrainement. Avec cet algorithme, nous allons donc prédire les 41% restants. C’est une méthode assez risquée car elle repose sur des labels qui ont été créés sans un contrôle direct par l’entreprise en question (ça reste une étude de cas). Cependant, pour l’exercice nous allons nous servir de ces catégories produits.

Dans le prochain article, je traiterai de la création de nouveaux champs définissants nos clients et plus spécifiquement, je mettrai en place le principe RFM. Pour ceux qui envisagent de faire ce genre de projet, n’hésitez pas à me poser des questions sur le sujet. Vos retours sont les bienvenus !

--

--

Miljan Stojiljkovic

Freelance en Data Science depuis 2 ans avec une expérience de consultant en Digital. J’essaie de réconcilier le business et la technique.