我在r中使用kmodes群集。每次运行下面的代码,即使在设置种子
后,我也会得到不同的簇大小set.seed(11)
c1 = kmodes(data, 3, iter.max = 1000, weighted = FALSE)
我正在寻找即使在再次运行相同的代码之后也不会改变的输出。我理解kmodes使用与Kmeans相同的安静技术作为初始随机点..如果我们设置种子然后Kmeans给出相同的簇大小输出但不适合Kmodes ..
由于
的Rahul
答案 0 :(得分:-1)
使用此简单代码,我们可以调查是否可以使用kmodes
复制set.seed
给出的结果:
library(klaR)
set.seed(1)
x <- rbind(matrix(rbinom(250, 2, 0.25), ncol = 5),
matrix(rbinom(250, 2, 0.75), ncol = 5))
colnames(x) <- c("a", "b", "c", "d", "e")
nreps <- 10
mtx <- matrix(0, nrow(x), nreps)
for (k in 1:nreps) {
set.seed(123)
mtx[, k] <- kmodes(x, 3, iter.max = 1000, weighted = FALSE)$cluster
}
kmodes
运行中nreps
的输出不会改变
apply(mtx,2,function(x) all(x==mtx[,1]))
[1] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE