Projet Pratique 2 : Apprentissage Non Supervisé - Segmentation de la Clientèle
Découvrir des groupes de clients avec le Clustering
Author
Affiliation
Wilson Toussile
ENSPY & ESSFAR
1 Contexte du Projet
Vous êtes consultant en data science pour un grand centre commercial. La direction marketing souhaite mieux comprendre le comportement de ses clients pour pouvoir créer des campagnes publicitaires plus ciblées et plus efficaces.
Actuellement, ils n’ont aucune catégorie prédéfinie pour leurs clients. Votre mission est d’utiliser les techniques de clustering pour analyser les données des clients et identifier des segments “naturels” ou des “personas” basés sur leur comportement d’achat.
2 Objectifs de l’Atelier
Ce projet vous guidera à travers un workflow complet d’apprentissage non supervisé :
Analyse Exploratoire des Données (EDA) : Visualiser les données pour se faire une première intuition.
Pré-traitement des Données : Préparer les données pour les algorithmes de clustering, notamment avec la mise à l’échelle.
Détermination du Nombre de Clusters : Utiliser des méthodes quantitatives (méthode du coude, score de silhouette) pour choisir un nombre optimal de segments.
Entraînement et Comparaison de Modèles : Appliquer et comparer au moins 2 algorithmes de clustering (ex: K-Means, Clustering Hiérarchique).
Interprétation et Recommandations : Analyser les caractéristiques de chaque cluster pour leur donner un nom et proposer des actions marketing ciblées. C’est l’étape la plus importante !
3 Le Jeu de Données : Mall Customer Segmentation
Nous utiliserons le jeu de données “Mall Customer Segmentation Data”, disponible sur Kaggle. Il contient des informations de base sur 200 clients du centre commercial.
Pour cet atelier, nous nous concentrerons sur les deux variables les plus pertinentes pour la segmentation comportementale : le revenu annuel et le score de dépense.
4 Atelier Pratique : Votre Mission Pas à Pas
4.1 Étape 1 : Chargement et Exploration Initiale
Chargez les données et visualisez la relation entre le revenu et le score de dépense.
import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport seaborn as sns# Configurationsns.set_theme(style="whitegrid", context="talk")plt.rcParams['figure.figsize'] = (12, 8)# Chargement des donnéestry: df = pd.read_csv('https://raw.githubusercontent.com/uiuc-cse/data-fa14/gh-pages/data/mall_customers.csv') df = df.rename(columns={'Annual Income (k$)': 'income', 'Spending Score (1-100)': 'score'})except:print("Erreur de chargement, veuillez vérifier l'URL ou votre connexion.") df = pd.DataFrame()ifnot df.empty:print("Données chargées. Dimensions:", df.shape)# On sélectionne les colonnes qui nous intéressent pour le clustering X = df[['income', 'score']]print("\nAperçu des données à utiliser :")print(X.head())# Visualisation initiale plt.figure() sns.scatterplot(x='income', y='score', data=X, s=100, alpha=0.7) plt.title('Distribution des Clients : Revenu vs. Score de Dépense') plt.xlabel('Revenu Annuel (k$)') plt.ylabel('Score de Dépense (1-100)') plt.show()
Erreur de chargement, veuillez vérifier l'URL ou votre connexion.
Analyse rapide : Le nuage de points semble déjà montrer des regroupements “naturels”. On peut distinguer au moins 4 ou 5 groupes.
4.2 Étape 2 : Pré-traitement et Recherche du K Optimal
Votre tâche :
Mettez les données à l’échelle en utilisant StandardScaler. C’est une étape indispensable pour les algorithmes basés sur la distance.
Utilisez la méthode du coude et le score de silhouette pour déterminer le nombre de clusters (K) le plus pertinent.
5 Étape 3 : Application des Algorithmes de Clustering
Votre tâche :
Appliquez l’algorithme K-Means avec le K optimal que vous avez trouvé.
Appliquez un Clustering Hiérarchique Agglomératif (avec la méthode de Ward) pour le même nombre de clusters.
Visualisez les résultats de chaque algorithme sur un graphique (un nuage de points où la couleur représente le cluster assigné).
6 Étape 4 : Interprétation des Segments et Recommandations
Votre tâche : C’est la partie la plus créative et la plus importante !
Choisissez le clustering qui vous semble le plus cohérent (K-Means ou Hiérarchique).
Pour chaque cluster, analysez les caractéristiques moyennes des clients qui le composent (revenu et score de dépense).
Donnez un nom “marketing” à chaque segment. Par exemple : “Les Économes Prudents”, “La Cible Prioritaire”, “Les Riches Indifférents”, etc.
Proposez une action marketing ciblée pour au moins deux de ces segments. Par exemple, pour le segment “Riches et Dépensiers”, on pourrait proposer des offres de luxe et un programme de fidélité premium.
7 Livrable Attendu
Un document Quarto complet ou un notebook Juyter contenant :
Votre code Python pour chaque étape.
Les visualisations (graphique du coude, score de silhouette, nuages de points des clusters).
Une section d’analyse détaillée où vous décrivez chaque segment de clientèle que vous avez identifié, en leur donnant un nom et en expliquant leurs caractéristiques.