100 Jours de ML

100 Jours de ML — Module 9 : l'apprentissage non supervisé et le clustering

100 Jours de ML — Module 9 : l'apprentissage non supervisé et le clustering

Neuvième module du challenge #100JoursDeML. Dans la vraie vie, la plupart des données n'ont pas d'étiquettes : personne ne vous dit quels clients se ressemblent. C'est le territoire de l'apprentissage non supervisé — apprendre la structure des données sans variable cible — dont le clustering (partitionnement) est l'application phare. Chaque leçon est détaillée ci-dessous avec sa vidéo.

📥 La checklist offerte du challenge
Recevez le PDF avec les 100 leçons à cocher et suivez votre progression jour après jour.

Télécharger la checklist →

Leçon 1 — Comprendre l'apprentissage non supervisé

La différence fondamentale avec le supervisé : pas de cible, donc pas de « bonne réponse » pour guider l'algorithme ni pour l'évaluer. Les deux grandes familles d'usage : le clustering (regrouper des observations similaires) et la réduction de dimension (déjà vue au Module 3 avec l'ACP). L'évaluation devient une affaire de cohérence interne et de sens métier.

Leçon 2 — K-means expliqué simplement

K-means partitionne les données en k groupes par un algorithme itératif d'une élégance rare : placer k centroïdes (points moyens), affecter chaque observation au centroïde le plus proche, recalculer les centroïdes, répéter jusqu'à stabilisation. L'algorithme minimise l'inertie intra-classe — la somme des distances des points à leur centroïde. Ses limites à connaître : il faut fixer k à l'avance, il présuppose des clusters sphériques de tailles comparables, et il est sensible à l'initialisation (d'où la variante k-means++).

Leçon 3 — Choisir le nombre de clusters

Deux outils complémentaires. La méthode du coude : tracer l'inertie en fonction de k et chercher le « coude » où le gain s'essouffle. Le score de silhouette : pour chaque point, comparer sa distance moyenne à son propre cluster et au cluster voisin — un score proche de 1 signale un point bien classé, proche de 0 un point à la frontière, négatif un point probablement mal affecté.

💡 À retenir : le « bon » nombre de clusters n'est pas qu'une affaire de coude ou de silhouette — c'est aussi une affaire métier. Une segmentation à 4 groupes actionnables vaut mieux qu'une segmentation à 11 groupes statistiquement optimale que personne ne sait exploiter.

Leçon 4 — Le guide complet K-means en Python

Mise en pratique de bout en bout : standardisation (le clustering repose sur des distances — même règle qu'au Module 8), ajustement, choix de k, puis l'étape que les débutants oublient : profiler les clusters — décrire chaque groupe par ses moyennes et ses particularités pour lui donner un nom et un sens métier.

from sklearn.cluster import KMeans
from sklearn.metrics import silhouette_score

X_std = StandardScaler().fit_transform(X)
for k in range(2, 8):
    labels = KMeans(n_clusters=k, n_init="auto", random_state=42).fit_predict(X_std)
    print(k, round(silhouette_score(X_std, labels), 3))  # le meilleur k se lit ici

df["cluster"] = KMeans(n_clusters=4, n_init="auto").fit_predict(X_std)
df.groupby("cluster").mean()  # profiler chaque groupe : l'étape décisive

Leçon 5 — La classification ascendante hiérarchique (CAH)

La CAH part de n clusters d'un point chacun et fusionne progressivement les plus proches, jusqu'à un cluster unique. Le résultat est un dendrogramme — un arbre qui visualise toute la hiérarchie des regroupements : on choisit le nombre de clusters après coup, en coupant l'arbre à la hauteur voulue. Le critère de Ward, le plus utilisé, fusionne à chaque étape les groupes qui augmentent le moins l'inertie intra-classe.

Leçon 6 — Les 5 points clés du clustering

La synthèse méthodologique : préparer les données, choisir l'algorithme selon la forme attendue des groupes, valider la stabilité des clusters, les profiler, et les traduire en actions. Un clustering qui ne débouche sur aucune décision est un exercice de style.

Leçon 7 — DBSCAN : le clustering par densité

DBSCAN (Density-Based Spatial Clustering of Applications with Noise) définit un cluster comme une zone dense de points, à partir de deux paramètres : epsilon (le rayon de voisinage) et minPts (le nombre minimal de voisins pour être un « point cœur »). Ses deux super-pouvoirs : détecter des clusters de forme quelconque (là où k-means ne voit que des sphères) et isoler les points de bruit qui n'appartiennent à aucun groupe — sans fixer le nombre de clusters à l'avance.

📌 Exemple : parce qu'il isole naturellement les points hors norme, DBSCAN sert aussi d'outil de détection d'anomalies — très utilisé en fraude bancaire, un domaine exploré dans l'épisode avec le CDO de LCL.

La suite

Dernière ligne droite du challenge : apprendre à modéliser le temps avec le Module 10 : les séries temporelles.

Références

  • MacQueen, J. (1967), « Some methods for classification and analysis of multivariate observations » — l'article fondateur de k-means
  • Rousseeuw, P. (1987), « Silhouettes: a graphical aid to the interpretation and validation of cluster analysis », JCAM
  • Ester, M. et al. (1996), « A density-based algorithm for discovering clusters » (DBSCAN), KDD · Ward, J. (1963), « Hierarchical grouping », JASA
  • Documentation scikit-learn : clustering

Pas de commentaires ici — les meilleures conversations se passent sur LinkedIn.

Discutons sur LinkedIn →
Natacha NJONGWA YEPNGA

Natacha NJONGWA YEPNGA

Ingénieure Data Scientist, entrepreneure et fondatrice du Groupe LDA. J'aide les organisations et les professionnels à mettre la Data et l'IA au service de l'humain.