Сообщение об ошибке, полученное при определении k-номера кластера кластеров K-Means

Я хотел бы определить k-число кластера, но я не мог использовать функцию NbClust, потому что мой набор данных слишком велик.

Я нашел статью в Интернете о кластеризации K-Means http://www.r-bloggers.com/k-means-clustering-from-r-in-action/. Я попытался запустить функцию в статье, но получил следующее сообщение об ошибке.

Кто-нибудь имеет решения для функции NbClust или функции, указанной в статье?

> wssplot <- function(m, nc=15, seed=1234){
+ wss <- (nrow(data)-1)*sum(apply(data,2,var))
+ for (i in 2:nc){
+ set.seed(seed)
+ wss[i] <- sum(kmeans(data, centers=i)$withinss)}
+ plot(1:nc, wss, type="b", xlab="Number of Clusters",
+ ylab="Within groups sum of squares")}

> wssplot(m3)
 Error in apply(data, 2, var) : dim(X) must have a positive length


> nc <- NbClust(m3, min.nc=2, max.nc=20, method="kmeans")
Error: cannot allocate vector of size 447.3 Mb
In addition: Warning messages:
1: In is.factor(x) :
 Reached total allocation of 8139Mb: see help(memory.size)
2: In is.factor(x) :
1 ответ

Ты пробовал

  1. исправление проблемы с вашим размером/компоновкой данных в wssplot

  2. Считается использование выборки для использования меньшего набора данных

  3. Выполнение процесса вручную: сначала кластер с k = 2, затем k = 3, а затем сравните оценки результатов?

Сначала убедитесь, что ваши данные подходят для k-средств: можете ли вы вычислить средства?

licensed under cc by-sa 3.0 with attribution.