Module 3 — Choix du nombre de groupes : coude et score de silhouette
Les k-moyennes exigent un que personne ne connaît. Ce module donne les deux outils qui permettent de le choisir de façon défendable — et surtout, la façon de les lire sans se raconter d'histoires. C'est la question la plus posée du partitionnement, et celle où l'on se trompe le plus volontiers.
Pourquoi l'inertie seule ne peut pas répondre
Rappel du module 2 : l'inertie décroît toujours quand augmente. Avec autant de groupes que de points, elle vaut zéro. Minimiser l'inertie conduirait donc mécaniquement à un groupe par observation — un résultat parfait et parfaitement inutile.
L'inertie n'est pas pour autant à jeter : c'est sa vitesse de décroissance qui porte l'information. C'est l'idée de la méthode du coude.
La méthode du coude : lire un ralentissement
On trace l'inertie en fonction de et l'on cherche le point où la courbe cesse de chuter pour s'aplatir — le « coude ». L'interprétation est intuitive : jusqu'à ce point, chaque groupe supplémentaire révèle une structure réelle et fait tomber l'inertie ; après, on ne fait plus que découper des groupes déjà homogènes, pour un gain marginal.
inerties = []
for k in range(2, 11):
inerties.append(KMeans(n_clusters=k, n_init=10, random_state=42).fit(X_s).inertia_)
Le défaut de la méthode est son honnêteté : le coude est souvent ambigu. Sur des données réelles, la courbe s'infléchit doucement et deux personnes y verront 3 et 5 groupes. La méthode du coude délimite une plage plausible ; elle ne tranche pas. D'où l'outil suivant, plus exigeant.
Le score de silhouette : compacité et séparation
Le score de silhouette évalue, pour chaque point, s'il est dans le bon groupe, en comparant deux distances moyennes : celle à son propre groupe () et celle au groupe voisin le plus proche ().
La lecture est directe et c'est ce qui fait la valeur de l'indicateur :
| Valeur | Interprétation |
|---|---|
| proche de 1 | point bien à sa place, groupes bien séparés |
| proche de 0 | point à la frontière entre deux groupes |
| négative | point probablement mal classé |
En moyennant sur tous les points, on obtient un score global comparable entre plusieurs — et cette fois, on peut retenir le maximum.
from sklearn.metrics import silhouette_score, silhouette_samples
silhouette_score(X_s, km.labels_) # score global, comparable entre k
silhouette_samples(X_s, km.labels_) # score par point : bien plus informatif
Le second appel mérite le détour. Un score global de 0,55 peut cacher trois groupes très nets et un quatrième incohérent, dont les points sont proches de zéro voire négatifs. Examiner la distribution par groupe révèle exactement où le partitionnement tient et où il craque, ce qu'une moyenne dissimule.
Arbitrer : les critères ne décident pas seuls
Coude et silhouette délimitent un espace de solutions raisonnables ; le choix final intègre deux considérations que la géométrie ignore :
- la stabilité (module 1) : relancez avec d'autres graines aléatoires, ou sur 90 % des données tirées au hasard. Si les groupes se recomposent en profondeur, ce n'est pas fiable, quel que soit son score ;
- l'utilité métier : 4 segments interprétables et actionnables valent mieux que 7 segments au meilleur score dont personne ne sait quoi faire. Un partitionnement qu'on ne peut pas nommer ne sera pas utilisé.
Un score de silhouette qui plafonne bas (disons sous 0,25) pour tous les n'est pas un échec de réglage : c'est un résultat. Il dit qu'il n'y a probablement pas de groupes sphériques nets dans ces données. Trois suites possibles, dans cet ordre : revoir les variables et l'échelle (le signal est peut-être noyé), essayer une méthode qui ne suppose pas des sphères (DBSCAN au module 5, mélanges gaussiens au module 9), ou accepter que la structure soit continue plutôt que groupée — auquel cas la réduction de dimension du module 6 est le bon outil.
En résumé
- L'inertie décroît toujours avec : c'est son ralentissement qu'on lit, via la méthode du coude, qui délimite une plage sans trancher.
- Le score de silhouette compare compacité et séparation dans et se compare entre plusieurs ; le maximum est un candidat sérieux.
- Le score par point révèle les groupes fragiles qu'une moyenne globale masque.
- Le choix final intègre stabilité et utilité métier ; un score bas pour tous les est une information, pas un échec.
Module suivant : le partitionnement hiérarchique, qui construit une arborescence de groupes sans fixer à l'avance.