T.P.  "clustering"

Fabien Moutarde, centre de Robotique (CAOR)

0. Préliminaires

Si vous travaillez sous Linux sur une machine du CC (ou via ssh connecté sur une machine du CC) : Sinon (si vous travaillez "en local" par exemple sur un PC sous Windows) :

1. Comparaison des techniques classiques de clustering

Donne-t'il toujours le résultat espéré ?
En analysant/comparant les formes des clusters des bases sur lesquelle k-means fonctionne le mieux et le moins bien, essayer de comprendre pour quels types de distributions de points k-means est  inadapté.
Confirmer votre intuition en tentant, sur une des bases pour lesquels k-means fonctionne mal, de relancer k-means en demandant un nombre de clusters supérieur au nombre réel, et en examinant les formes des clusters obtenus.
dist2_xxx=dist(true_data_xxx)
hs_xxx=hclust(dist2_xxx,method="single")
plot(hs_xxx) # Pour visualiser le dendrogramme
labS_xxx=cutree(hs_xxx,K) # K : nb de clusters voulus, qui déterminera hauteur où le dendrogramme sera coupé
plot(true_data_xxx,col=labS_xxx)

hc_xxx=hclust(dist2_xxx,method="complete")
plot(hc_xxx) # Pour visualiser le dendrogramme 
labC_xxx=cutree(hc_xxx,K) # K : nb de clusters voulus, qui déterminera hauteur où le dendrogramme sera coupé
plot(true_data_xxx,col=labC_xxx)

Sur quelle(s) base(s) d'exemples le "single-linkage" donne-t'il un résultat excellent ? Pourquoi est-ce logique ?
Inversement, sur quelle base le "single-linkage" fonctionne-t'il le moins bien, et pourquoi est-ce attendu ?
En comparant avec ce que vous aviez constaté pour k-means, quelle variante (entre single-linkage et complete-linkage) vous semble la + complémentaire de k-means ?