Que trouverez-vous ici?
Pour l'instant il n'y a qu'un seul projet ... mais l'idée est la suivante: mêler des mathématiques à d'autres disciplines afin de répondre à un problème concrêt. Le niveau requis pour réaliser ces projets est très variable, mais comme ils sont basés sur des problèmes concrêts, il est possible de suivre l'avancée d'un projet sans pour autant comprendre les points techniques, par exemple les codes informatiques comportent des annotations pour comprendre l'idée générale sans avoir à connaître le langage de programmation.
Projet : Segmentation RFM
Contexte:
On souhaite séparer (segmenter) les clients d'un site de commerce en ligne en différents groupes afin de permettre à une équipe marketing d'effectuer une campagne de publicité ciblée (par exemple proposer une offre promotionnelle aux clients qui étaient réguliers il y a encore peu de temps mais qui ont soudainement arrêté de commander).
Les données:
On dispose d'un jeu de données, disponible ici, provenant d'une entreprise réelle.
Par contre ce jeu de données n'est pas vraiment de bonne qualité pour ce que nous voulons faire parce que la fidélité d'un client se mesure surtout à la fréquence de ses commandes, or très peu de clients de ce jeu de données ont effectué plusieurs commandes. Il y aura donc un manque de réalisme dans le sens où l'approche mathématique ne fera pas vraiment mieux que l'intuition, mais les résultats seront bien cohérents avec l'intuition.
L'approche employée:
On représente un client par un point dans un certain espace (tous les clients dans le même espace) et on regroupe les points (donc les clients) qui sont proches dans un même groupe.
Quel est cet espace? Il s'agit d'un espace à trois dimensions. Chaque dimension correspondant à l'une des trois variables RFM:
- R pour "Récente": nombre de jours passés depuis la dernière commande.
- F pour "Fréquence": nombre de commandes effectuées sur une certaine période.
- M pour "Montant": montant des commandes effectuées sur une certaine période.
Comment détermine-t-on les groupes? Nous allons utiliser un algorithme k-means déjà implémenté dans une bibliothèque d'un langage de programmation (le langage python pour ma part): on donne les données sous un bon format à un ordinateur et il s'occupera des calculs. La méthode du k-means est assez simple à comprendre, les détails sont là (mais il faut quand même être assez à l'aise avec le formalisme mathématique pour suivre l'article).
Remarques importantes
Si vous ne faites pas de programmation, focalisez vous sur les annotations et les résultats.
Mathématiquement, on travaillera les représentations graphiques et les statistiques descriptives, il n'y aura pas de calculs ou de raisonnements mathématiques à rédiger sois-même. On utilisera la fonction logarithme pour quelques graphiques. Il y a quelques notions difficiles comme l'analyse en composantes principales (ACP) et le t-SNE (très difficile), ces parties ne sont pas du tout indispensable, vous pouvez les passer.
Quelques précisions concernant le vocabulaire peuvent être utiles:
- dataframe: tableau (visuellement ça ressemble à un tableau excel).
- clustering: segmentation, séparation en plusieurs groupes.
- review_score: note donnée par un client (satisfaction).
- il y a d'autres termes en anglais...
- score silhouette: c'est une mesure de la qualité d'un clustering, c'est un nombre compris entre -1 et 1, plus il est grand, meilleur est le clustering.
- boxplots: ici
Le projet
Vous trouverez ci-dessous deux notebooks.
Le premier notebook comporte une analyse statistique des données ainsi que la constitution d'un jeu de données adapté à la segmentation RFM. En effet, seule une petite partie du jeu de données de base nous sera utile donc il va falloir faire du tri.
Le deuxième notebook comporte des essais de segmentation des clients.