Запуск нескольких итераций K-средних с различными значениями для числа центроидов - PullRequest
0 голосов
/ 09 ноября 2018

У меня большой набор данных, и я пытаюсь выполнить анализ кластера K-средних. Однако я хочу повторить это с несколькими итерациями, изменив число центроидов. Вот что я сделал до сих пор:

# import data

week1 <- read.csv("WEEK1.csv", header = TRUE)
week2 <- read.csv("WEEK2.csv", header = TRUE)
week3 <- read.csv("WEEK3.csv", header = TRUE)
week4 <- read.csv("WEEK4.csv", header = TRUE)

data <- rbind(week1, week2, week3, week4)

# variable names

for(i in 1:50){
  assign(paste("cluster", i, sep = ""), i)    
}

Я потратил много времени, пытаясь выяснить, как «вызвать» мои кластерные переменные в цикле for, чтобы я мог сделать что-то вроде этого:

for (i in 1:50){
  cluster[i] <- kmeans(data, i, nstart = 1)
}

Есть мысли?

1 Ответ

0 голосов
/ 09 ноября 2018

Может быть, это поможет, поместите различные числа кластеров в вектор и сохраните результат в списке. Мой пример с 3 максимальными центроидами, и я использую набор данных mtcars, потому что вы не опубликовали свои данные.

vector <- c()                                             # an empty vector
for(i in 1:3){                                            # a loop that creates the
                                                          # various n of clusters
   vector[i] <- assign(paste("cluster", i, sep = ""), i)         
}

Теперь мы можем создать список kmeans:

list_k <- list()                                          # an empty list
for (i in vector){                                        # fill it with the kmeans
  list_k[[i]] <- kmeans(mtcars, i, nstart = 1)
}

Чтобы иметь доступ к каждому kmeans, вы можете использовать это:

list_k[[3]]

Чтобы иметь доступ к каждому элементу каждого списка, это:

list_k[[3]][1]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...