2013-05-06 164 views
3

在R编程环境中,我目前使用kmeans算法的标准实现(类型:help(kmeans))。看起来我无法初始化起始质心。我指定kmeans算法给我4簇,我想通过起始质心的矢量坐标。R kmeans初始化

  1. 是否有执行kmeans允许我传递初始质心坐标?
+5

''中心'参数应该让你这样做。 – Marius 2013-05-06 00:25:33

回答

5

是的。您提到的实施允许您指定起始位置。你通过centers参数centers参数

> dat <- data.frame(x = rnorm(99, mean = c(-5, 0 , 5)), y = rnorm(99, mean = c(-5, 0, 5))) 
> plot(dat) 
> start <- matrix(c(-5, 0, 5, -5, 0, 5), 3, 2) 
> kmeans(dat, start) 
K-means clustering with 3 clusters of sizes 33, 33, 33 

Cluster means: 
      x   y 
1 -5.0222798 -5.06545689 
2 -0.1297747 -0.02890204 
3 4.8006581 5.00315151 

Clustering vector: 
[1] 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 
[51] 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 1 2 3 

Within cluster sum of squares by cluster: 
[1] 58.05137 73.81878 52.45732 
(between_SS/total_SS = 94.7 %) 

Available components: 

[1] "cluster"  "centers"  "totss"  "withinss"  "tot.withinss" "betweenss" 
[7] "size"