Я знаю, что этот вопрос уже задавался, но я не в состоянии реализовать достойный сюжет для следующего кода:Как найти оптимальное количество кластеров?
options(digits=1)
set.seed(2014)
mydata <- matrix(seq(1,360),nrow=10,ncol=36)
wss <- c()
for (i in 1:19) wss[i] <- sum(kmeans(x=mydata,centers=seq(1,360,length.out=20)[i])$withinss)
plot(1:9, wss, type="b", xlab="Number of Clusters",
ylab="Within groups sum of squares")
Это производит следующее сообщение об ошибке
Error in sample.int(m, k) :
cannot take a sample larger than the population when 'replace = FALSE'
Попробуйте с помощью 'mydata <- matrix (runif (720), ncol = 2)'. – jbaums
Похоже, у вас есть опечатка: замените 'for (i in 1:19)' на 'for (i in 1: 9)'. Aso, центры - это * число кластерных центров * (следовательно, число кластеров), поэтому замените 'центры = seq (...)' на 'центры = i'. – jlhoward
@jlhoward мое намерение состояло в том, чтобы сделать случайное распределение «центров», используя строку 'seq (1,360, length.out = 20) [i]' – Franckess