在R编程环境中,我目前正在使用kmeans
算法的标准实现(类型:help(kmeans)
)。看来我无法初始化起始质心。我指定kmeans
算法给我4个簇,我想传递起始质心的矢量坐标。
kmeans
的实现允许我传递初始质心坐标?答案 0 :(得分:5)
是。您提到的实现允许您指定起始位置。您通过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"