J'utilise K-means pour regrouper mes données et je cherchais un moyen de suggérer un numéro de cluster "optimal". Les statistiques sur les écarts semblent être un moyen courant de trouver un bon numéro de cluster.
Pour une raison quelconque, il renvoie 1 comme numéro de cluster optimal, mais quand je regarde les données, il est évident qu'il y a 2 clusters:
Voici comment j'appelle gap dans R:
gap <- clusGap(data, FUN=kmeans, K.max=10, B=500)
with(gap, maxSE(Tab[,"gap"], Tab[,"SE.sim"], method="firstSEmax"))
L'ensemble de résultats:
> Number of clusters (method 'firstSEmax', SE.factor=1): 1
logW E.logW gap SE.sim
[1,] 5.185578 5.085414 -0.1001632148 0.1102734
[2,] 4.438812 4.342562 -0.0962498606 0.1141643
[3,] 3.924028 3.884438 -0.0395891064 0.1231152
[4,] 3.564816 3.563931 -0.0008853886 0.1387907
[5,] 3.356504 3.327964 -0.0285393917 0.1486991
[6,] 3.245393 3.119016 -0.1263766015 0.1544081
[7,] 3.015978 2.914607 -0.1013708665 0.1815997
[8,] 2.812211 2.734495 -0.0777154881 0.1741944
[9,] 2.672545 2.561590 -0.1109558011 0.1775476
[10,] 2.656857 2.403220 -0.2536369287 0.1945162
Suis-je en train de faire quelque chose de mal ou quelqu'un connaît-il une meilleure façon d'obtenir un bon numéro de cluster?