是否可以为特定数据集的每次执行获取相同的kmeans集群。就像随机值一样,我们可以使用固定种子。是否可以停止聚类的随机性?
答案 0 :(得分: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)
测试平等:
identical(XX, YY)
[1] TRUE
答案 1 :(得分:4)
是的,在运行set.seed(foo)
之前立即调用kmeans(....)
将提供相同的随机启动,因此每次都会进行相同的群集。 foo
是种子,如42
或其他一些数值。