是否有可能为特定数据集的每次执行获得相同的 kmeans 集群。就像对于随机值一样,我们可以使用固定种子。是否可以停止聚类的随机性?
问问题
12295 次
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 回答