È piuttosto difficile fornire una soluzione chiara su come scegliere il numero "migliore" di cluster nei dati, qualunque sia il metodo di clustering utilizzato, poiché Cluster Analysis cerca di isolare gruppi di unità statistiche (siano esse individui o variabili ) a fini esplorativi o descrittivi, essenzialmente. Quindi, devi anche interpretare l'output del tuo schema di clustering e diverse soluzioni di cluster potrebbero essere ugualmente interessanti.
Ora, per quanto riguarda i consueti criteri statistici usati per decidere quando fermarsi ad aggregare i dati, come indicato da @ars la maggior parte sono criteri visivamente guidati , inclusa l'analisi del dendrogramma o l'ispezione dei profili dei cluster, chiamati anche grafici di silhouette (Rousseeuw, 1987) . Sono stati proposti anche diversi criteri numerici , noti anche come indici di validità, ad esempio l'indice di validità di Dunn, l'indice di validità di Davies-Bouldin, l'indice C, la gamma di Hubert, per citarne alcuni. Il clustering gerarchico viene spesso eseguito insieme a k-mean (in effetti, diverse istanze di k-mean poiché si tratta di un algoritmo stocastico), in modo da aggiungere supporto alle soluzioni di clustering trovate. Non so se tutte queste cose sono prontamente disponibili in Python, ma in R è disponibile una grande quantità di metodi (vediVista delle attività del cluster , già citata da @mbq per una domanda correlata, quali strumenti potrebbero essere utilizzati per applicare algoritmi di clustering su MovieLens? ). Altri approcci includono il clustering fuzzy e il clustering basato su modelli (chiamato anche analisi dei tratti latenti , nella comunità psicometrica) se cerchi un modo più robusto per scegliere il numero di cluster nei tuoi dati.
A proposito, mi sono appena imbattuto in questa pagina web, scipy-cluster , che è un'estensione di Scipy per la generazione, la visualizzazione e l'analisi di cluster gerarchici . Forse include altre funzionalità? Ho anche sentito parlare di PyChem che offre roba abbastanza buona per l'analisi multivariata.
Il seguente riferimento può anche essere utile:
Steinley, D., e Brusco, MJ (2008). Selezione delle variabili nell'analisi dei cluster: un confronto empirico di otto procedure. Psychometrika , 73 , 125-144.