【问题标题】:Scree Plot for determining K in K Means用于在 K 均值中确定 K 的碎石图
【发布时间】:2015-11-17 19:40:16
【问题描述】:

我正在学习 R 并且在进行 K 均值聚类时,我多次遇到以下函数来确定碎石图中的最佳 K。 现在,我确实理解了函数背后的逻辑,但是我很难理解 R 函数,有人可以解释一下吗。

wssplot <- function(data, nc=15, seed=1234)
  {
    wss <- (nrow(data)-1)*sum(apply(data,2,var))
    for (i in 2:nc)
    {
      set.seed(seed)
      wss[i] <- sum(kmeans(data, centers=i)$withinss)
    }
    plot(1:nc, wss, type="b", xlab="Number of Clusters",
    ylab="Within groups sum of squares")
}

【问题讨论】:

  • 你有什么不明白的?
  • 避免编辑标题:scree plot
  • 不明白wss &lt;- (nrow(data)-1)*sum(apply(data,2,var))的需要和作用。
  • @Pascal - 我该怎么称呼它,我想不出一个不同的标题。请推荐!
  • 你在说什么?保持您的标题不变。

标签: r cluster-analysis k-means


【解决方案1】:

该函数运行kmeansnc-1 次并找到平方和向量,并将其相加。这是每次迭代的结果,然后依次绘制在图表上,其中 x 轴上有聚类数,y 轴显示平方和的总和。

【讨论】:

  • 谢谢@Roman,所以我的理解是它在 wss 中创建了一个“平方和内”的向量,然后将它与从 2 到 15 的集群数进行对比。我不明白wss &lt;- (nrow(data)-1)*sum(apply(data,2,var)) 的需求和功能。我从函数中删除了它,仍然得到相同的情节。
  • wss 是一个长度为 1 的向量,并被循环覆盖(并拉长)。这可能是函数先前版本的基本变量,也可能是函数编写过程中保留的变量。或者是一种非常繁琐的初始化循环写入对象所需的方法。您可以将其替换为wss &lt;- rep(NA, length(2:nc))
猜你喜欢
  • 2018-12-21
  • 2016-12-12
  • 1970-01-01
  • 2011-09-06
  • 2015-09-23
  • 2016-08-22
  • 2011-04-21
相关资源
最近更新 更多