7

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

4

2 回答 2

19

是的。用于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
于 2011-09-21T14:03:30.097 回答
4

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

于 2011-09-21T14:02:51.527 回答