R k均值法和弯头法为同一数据和同一中心生成不同的图形。

R k均值法和弯头法为同一数据和同一中心生成不同的图形。,r,k-means,R,K Means,我试图从eblow图中找到最佳集群大小。 问题是每次我运行代码时,它都会生成不同的图形 par(mfrow=c(2,2)) for(i in 1:4){ data <- read.csv(file = "C:/Users/sd0298/Desktop/data.csv", header = TRUE) wss <- (nrow(data)-1)*sum(apply(data,2,var)) for (i in 2:15) {

我试图从eblow图中找到最佳集群大小。 问题是每次我运行代码时,它都会生成不同的图形

    par(mfrow=c(2,2))
    for(i in 1:4){
      data <- read.csv(file = "C:/Users/sd0298/Desktop/data.csv", header =  TRUE)
      wss <- (nrow(data)-1)*sum(apply(data,2,var))
      for (i in 2:15) {
        wss[i] <- sum(kmeans(data, centers=i, iter.max = 500, nstart = 1, algorithm  = "Lloyd" , trace =  TRUE)$withinss)
      }
      plot(1:15, wss, type="b", xlab="Number of Clusters", ylab="Within groups sum of squares", main="SSE vs Cluster levels",cex.axis = 0.8)

    }
    par(mfrow=c(2,2))
    for(i in 1:4){
      data <- read.csv(file = "C:/Users/sd0298/Desktop/data.csv", header =  TRUE)
      wss <- (nrow(data)-1)*sum(apply(data,2,var))
      km <- kmeans(data, centers=4, iter.max = 500, nstart = 1, algorithm  = "Lloyd" , trace =  TRUE)  
      clusplot(data, km$cluster, color=TRUE, shade=T, span=T, col.p = c("#666666"),   lines=0 ,plotchar=F,  sub = "" ,main = "", labels=5)            
    }
par(mfrow=c(2,2))
(我在1:4中){

data您正在对
R
kmeans()
函数进行以下调用:

km <- kmeans(data, centers=4, iter.max = 500, nstart = 1, algorithm  = "Lloyd" , trace =  TRUE)

km这是意料之中的,因为
kmeans
的结果是随机启动的。您可以通过提前指定组平均值来帮助函数。