【问题标题】:R kmeans initializationR kmeans 初始化
【发布时间】:2013-04-29 17:18:42
【问题描述】:
在R编程环境中,我目前使用的是kmeans算法的标准实现(类型:help(kmeans))。看来我无法初始化起始质心。我指定 kmeans 算法给我 4 个簇,我想传递起始质心的矢量坐标。
- 是否有
kmeans 的实现允许我传递初始质心坐标?
【问题讨论】:
标签:
algorithm
r
initialization
k-means
【解决方案1】:
是的。您提到的实现允许您指定起始位置。你通过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"