R 如何使用弯头法选择合适的k簇?

R 如何使用弯头法选择合适的k簇?,r,R,当我使用R来执行k-means聚类数据时。我不知道如何找到合适的k值。我知道肘部法,但我不知道如何使用 kclus您可以使用弯头方法作为以下代码段: elbow.k <- function(mydata){ ## determine a "good" k using elbow dist.obj <- dist(mydata); hclust.obj <- hclust(dist.obj); css.obj <- css.hclust(dist.obj,h

当我使用R来执行k-means聚类数据时。我不知道如何找到合适的k值。我知道肘部法,但我不知道如何使用
kclus您可以使用弯头方法作为以下代码段:

elbow.k <- function(mydata){
  ## determine a "good" k using elbow
  dist.obj <- dist(mydata);
  hclust.obj <- hclust(dist.obj);
  css.obj <- css.hclust(dist.obj,hclust.obj);
  elbow.obj <- elbow.batch(css.obj);
  #   print(elbow.obj)
  k <- elbow.obj$k
  return(k)
}

弯头.k我用了这个特殊的例子,这里
f
is
mydata

library("clusters")
library("fpc")
findClusters <- function(f) {
    asw <- numeric(20)
    for (k in 2:20)
      asw[[k]] <- pam(f,k)$silinfo$avg.width

    k.best <- which.max(asw)
    cl <- kmeans(f,k.best)
    return(unlist(round(cl$centers,3),recursive = FALSE))
}
库(“集群”)
图书馆(“fpc”)

findClusters您的问题可能更适合交叉验证!