我有一组 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 但这对我来说似乎也不起作用。
关于我做错了什么建议? 感谢
答案 0 :(得分:0)
问题是algorithm
的默认值是&#34; Hartigan-Wong&#34;,但您可能正在使用&#34; Lloyd&#34;。如果您将kmeans语句更改为
km <- kmeans(mx, centers=kcenters, algorithm="Lloyd")
你会得到你期待的答案。有关Data Science Forum
上算法之间差异的详细说明