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