J'expérimente avec la classification des données en groupes. Je suis assez nouveau sur ce sujet et j'essaie de comprendre le résultat de certaines analyses.
En utilisant des exemples de Quick-R , plusieurs R
packages sont suggérés. J'ai essayé d'utiliser deux de ces packages (en fpc
utilisant la kmeans
fonction, et mclust
). Un aspect de cette analyse que je ne comprends pas est la comparaison des résultats.
# comparing 2 cluster solutions
library(fpc)
cluster.stats(d, fit1$cluster, fit2$cluster)
J'ai lu les parties pertinentes du fpc
manuel et je ne sais toujours pas ce que je devrais viser. Par exemple, c'est le résultat de la comparaison de deux approches de clustering différentes:
$n
[1] 521
$cluster.number
[1] 4
$cluster.size
[1] 250 119 78 74
$diameter
[1] 5.278162 9.773658 16.460074 7.328020
$average.distance
[1] 1.632656 2.106422 3.461598 2.622574
$median.distance
[1] 1.562625 1.788113 2.763217 2.463826
$separation
[1] 0.2797048 0.3754188 0.2797048 0.3557264
$average.toother
[1] 3.442575 3.929158 4.068230 4.425910
$separation.matrix
[,1] [,2] [,3] [,4]
[1,] 0.0000000 0.3754188 0.2797048 0.3557264
[2,] 0.3754188 0.0000000 0.6299734 2.9020383
[3,] 0.2797048 0.6299734 0.0000000 0.6803704
[4,] 0.3557264 2.9020383 0.6803704 0.0000000
$average.between
[1] 3.865142
$average.within
[1] 1.894740
$n.between
[1] 91610
$n.within
[1] 43850
$within.cluster.ss
[1] 1785.935
$clus.avg.silwidths
1 2 3 4
0.42072895 0.31672350 0.01810699 0.23728253
$avg.silwidth
[1] 0.3106403
$g2
NULL
$g3
NULL
$pearsongamma
[1] 0.4869491
$dunn
[1] 0.01699292
$entropy
[1] 1.251134
$wb.ratio
[1] 0.4902123
$ch
[1] 178.9074
$corrected.rand
[1] 0.2046704
$vi
[1] 1.56189
Ma principale question ici est de mieux comprendre comment interpréter les résultats de cette comparaison de grappes.
Auparavant, j'avais demandé plus sur l'effet de la mise à l'échelle des données et du calcul d'une matrice de distance. Cependant, cela a été répondu clairement par Marianne Soffer, et je suis juste en train de réorganiser ma question pour souligner que je m'intéresse à l'intrusion de ma sortie qui est une comparaison de deux algorithmes de clustering différents.
Partie précédente de la question : si je fais n'importe quel type de clustering, dois-je toujours mettre à l'échelle les données? Par exemple, j'utilise la fonction dist()
sur mon jeu de données mis à l'échelle comme entrée de la cluster.stats()
fonction, mais je ne comprends pas bien ce qui se passe. J'ai lu dist()
ici et il dit que:
cette fonction calcule et renvoie la matrice de distance calculée en utilisant la mesure de distance spécifiée pour calculer les distances entre les lignes d'une matrice de données.