Comment choisissez-vous le nombre de clusters ?

Questions d’entrevue Apprentissage non supervisé

Intermédiairekmeansevaluationclustering

La réponse attendue commence par un aveu : aucune méthode ne donne le bon k, parce qu’il n’existe pas. Les techniques ci-dessous délimitent une plage plausible ; le choix final se fait sur l’usage.

Les critères statistiques

La méthode du coude. On trace l’inertie en fonction de k. Elle décroît toujours — à k égal au nombre de points, elle vaut zéro — donc on ne cherche pas son minimum mais le point où elle cesse de décroître franchement. Le défaut à connaître : sur des données réelles, la courbe est souvent lisse et le coude est dans l’œil de celui qui regarde.

Le coefficient de silhouette. Pour chaque point, il compare sa distance moyenne à son propre groupe et au groupe voisin le plus proche. Il varie de −1 à 1, et on retient le k qui le maximise. Plus discriminant que le coude, et biaisé en faveur des groupes compacts et sphériques — donc en faveur de ce que k-means sait produire.

Les autres indices, à citer pour montrer qu’on connaît le paysage : Calinski-Harabasz, Davies-Bouldin, et la statistique d’écart (gap statistic), qui compare l’inertie obtenue à celle qu’on obtiendrait sur des données sans structure. Cette dernière est la seule à pouvoir répondre « k vaut 1 », c’est-à-dire il n’y a pas de groupes ici — et c’est une réponse qu’il faut pouvoir donner.

python
for k in range(2, 11):
    etiquettes = KMeans(n_clusters=k, n_init=10, random_state=42).fit_predict(X)
    print(k, silhouette_score(X, etiquettes).round(3))

Ce qui tranche vraiment

Quand deux ou trois valeurs de k restent en lice, ce n’est plus une question statistique :

  • La contrainte opérationnelle. Une équipe marketing peut concevoir cinq campagnes, pas dix-sept. Un k de 5 légèrement moins bon en silhouette est le bon choix, parce que le résultat sera utilisé.
  • L’interprétabilité. Le bon k est celui dont chaque groupe se décrit en une phrase que le métier reconnaît. Si deux groupes se racontent de la même façon, il y en a un de trop.
  • La stabilité. On refait le clustering sur des sous-échantillons : un k dont les groupes se reproduisent est plus crédible qu’un k mieux noté mais instable.

Le retournement de la question

Deux réponses qui font forte impression, parce qu’elles sortent du cadre :

Changer d’algorithme. La question ne se pose qu’à cause de k-means. DBSCAN détermine lui-même le nombre de groupes à partir de la densité, et la classification hiérarchique produit un arbre qu’on coupe où l’on veut, après avoir vu la structure.

Vérifier d’abord qu’il y a des groupes. Chercher le nombre de groupes de données qui n’en contiennent pas est une erreur de méthode. Un test de tendance au regroupement — la statistique de Hopkins, ou une comparaison à des données uniformes — évite de segmenter un nuage homogène et de le présenter comme une découverte.

Toutes les questions Apprentissage non supervisé