Il est assez difficile de fournir une solution claire sur la façon de choisir le "meilleur" nombre de clusters dans vos données, quelle que soit la méthode de clustering que vous utilisez, car l'analyse de clusters cherche à isoler des groupes d'unités statistiques (qu'il s'agisse d'individus ou de variables ) à des fins exploratoires ou descriptives, essentiellement. Par conséquent, vous devez également interpréter la sortie de votre schéma de clustering et plusieurs solutions de cluster peuvent être tout aussi intéressantes.
Maintenant, en ce qui concerne les critères statistiques habituels utilisés pour décider quand s'arrêter pour agréger les données, comme indiqué par @ars, la plupart sont des critères visuels , y compris l'analyse du dendrogramme ou l'inspection des profils de grappes, également appelés graphiques de silhouette (Rousseeuw, 1987) . Plusieurs critères numériques , également appelés indices de validité, ont également été proposés, par exemple l'indice de validité de Dunn, l'indice de validité Davies-Bouldin, l'indice C, le gamma d'Hubert, pour n'en nommer que quelques-uns. Le clustering hiérarchique est souvent exécuté avec k-means (en fait, plusieurs instances de k-means puisqu'il s'agit d'un algorithme stochastique), de sorte qu'il ajoute un support aux solutions de clustering trouvées. Je ne sais pas si tout cela est facilement disponible en Python, mais une énorme quantité de méthodes est disponible en R (voir leVue des tâches de cluster , déjà citée par @mbq pour une question connexe, Quels outils pourraient être utilisés pour appliquer des algorithmes de clustering sur MovieLens? ). D'autres approches incluent le clustering flou et le clustering basé sur un modèle (également appelé analyse des caractères latents , dans la communauté psychométrique) si vous recherchez un moyen plus robuste de choisir le nombre de clusters dans vos données.
BTW, je viens de découvrir cette page Web, scipy-cluster , qui est une extension de Scipy pour générer, visualiser et analyser des clusters hiérarchiques . Peut-être qu'il comprend d'autres fonctionnalités? J'ai également entendu parler de PyChem qui offre de très bonnes choses pour l'analyse multivariée.
La référence suivante peut également être utile:
Steinley, D. et Brusco, MJ (2008). Sélection de variables dans l'analyse en grappes: une comparaison empirique de huit procédures. Psychometrika , 73 , 125-144.