【问题标题】:How to choose appropriate k clusters using Elbow method?如何使用 Elbow 方法选择合适的 k 个簇?
【发布时间】:2016-10-14 01:20:55
【问题描述】:

当我使用 R 执行 k-means 聚类数据时。我不知道如何找到合适的 k 值。我看到了 Elbow 方法,但我不知道如何使用 kclus

【问题讨论】:

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

标签: r


【解决方案1】:

我使用了这个特定的例子,这里fmydata

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))
}

我是从这个特定的link 中获取的

【讨论】:

    【解决方案2】:

    你可以使用Elbow方法作为下面的sn-p:

    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值。但是比较耗时,应该使用并行包来减少时间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-10-12
      • 2021-12-21
      • 2023-03-12
      • 2016-03-16
      • 2020-03-14
      • 2015-02-19
      • 2021-02-23
      相关资源
      最近更新 更多