R kmeans具有不同的聚类中心

时间:2017-10-28 19:42:51

标签: r

我有一组 10分,需要找到 2个不同的群集中心 (8,3)& (8,-1)

作为起点。如果我手动执行此操作,我会获得正确的群集中心(4,5)& (4,-1)

如果我使用R kmeans,我会得到左右群集的中心(10.4,2)& (-2.4,3.2)

我的R代码是:

x = c(-6,4,-3,7,1,6,-4,0,0,-1,11,7,8,3,8,-1,13,3,12,-2)  
xx = matrix(x,nrow=2) # 2 x 10 matrix  
xx  
mx = t(xx) # transpose to 10 x 2 matrix  
mx  
kcenters = matrix(c(8,8,3,-1),ncol=2)  
kcenters  
km = NULL  
km <- kmeans(mx, centers=kcenters, iter.max=1)  
km$centers  

我找到了这个答案 R k-means algorithm custom centers 但这对我来说似乎也不起作用。

关于我做错了什么建议? 感谢

1 个答案:

答案 0 :(得分:0)

问题是algorithm的默认值是&#34; Hartigan-Wong&#34;,但您可能正在使用&#34; Lloyd&#34;。如果您将kmeans语句更改为

km <- kmeans(mx, centers=kcenters, algorithm="Lloyd")

你会得到你期待的答案。有关Data Science Forum

上算法之间差异的详细说明