Estou usando o K-means para agrupar meus dados e estava procurando uma maneira de sugerir um número de cluster "ideal". As estatísticas de gap parecem ser uma maneira comum de encontrar um bom número de cluster.
Por alguma razão, ele retorna 1 como o número ideal do cluster, mas quando olho para os dados, é óbvio que existem 2 clusters:
É assim que chamo de gap no R:
gap <- clusGap(data, FUN=kmeans, K.max=10, B=500)
with(gap, maxSE(Tab[,"gap"], Tab[,"SE.sim"], method="firstSEmax"))
O conjunto de resultados:
> 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
Estou fazendo algo errado ou alguém conhece uma maneira melhor de obter um bom número de cluster?