对质心数使用不同的值运行K-Means的多次迭代

时间:2018-11-09 03:04:50

标签: r variables

我的数据集很大,我正在尝试进行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 :(得分:0)

这可能会有所帮助,将各种数量的簇放在向量中,然后将结果存储在列表中。我的示例包含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)
}

要访问每个kmean,可以使用以下方法:

list_k[[3]]

要访问每个列表的每个元素,请执行以下操作:

list_k[[3]][1]