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

时间:2011-09-21 13:57:34

标签: r statistics cluster-analysis k-means

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

2 个答案:

答案 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或其他一些数值。