k-means:每次执行都有相同的簇

Rob*_*bin 5 statistics r cluster-analysis k-means

是否可以为特定数据集的每次执行获取相同的kmeans集群.就像随机值一样,我们可以使用固定种子.是否可以停止聚类的随机性?

And*_*rie 14

是.用set.seed做集群之前设置为随机值的种子.

使用以下示例kmeans:

set.seed(1)
x <- rbind(matrix(rnorm(100, sd = 0.3), ncol = 2),
           matrix(rnorm(100, mean = 1, sd = 0.3), ncol = 2))
colnames(x) <- c("x", "y")


set.seed(2)
XX <- kmeans(x, 2)

set.seed(2)
YY <- kmeans(x, 2)
Run Code Online (Sandbox Code Playgroud)

测试平等:

identical(XX, YY)
[1] TRUE
Run Code Online (Sandbox Code Playgroud)


Rei*_*son 4

set.seed(foo)是的,在运行之前立即调用kmeans(....)将给出相同的随机启动,因此每次都会给出相同的聚类。foo是种子,例如42或其他一些数值。