【发布时间】:2017-10-23 01:19:13
【问题描述】:
我正在使用肘部方法,剪影并尝试从数据中找到最佳的 k m 簇数。现在对于大多数软件包,如果我考虑 wss(在相似性分数内)或剪影,它会给出 3 个 PAM、Kmeans、clara。通过休伯特分析,我得到了理想的 2 个集群。唯一奇怪的是下面的命令给了我一个让我有点困惑的情节。我应该将其视为 3 个集群还是 4 个集群。如果有人可以在这里给我一些反馈。
使用的代码
wss <- (nrow(scale(df))-1)*sum(apply(scale(df),2,var))
for (i in 2:10) wss[i] <- sum(kmeans(scale(df),
centers=i)$withinss)
fviz_nbclust(scale(df), kmeans, method = "wss")
我也在尝试放置图像,以便可以告诉我这里的簇号是 3 还是 4。理想情况下,我认为它应该是 4,因为 WSS 的重点是选择 SSE 或多或少平坦的 k。
【问题讨论】:
-
别忘了这是一个启发式,真正的解决方案可能是 2. 或 5. 或 42.
-
2 和 5 是更现实的东西,但 42 是在迭代过程中任意聚类 k 的东西。并随时查看。我不喜欢使用迭代 k 的方法,而是想使用一种基于行缩放为我的数据找到最佳 k 的方法,因为我想减少最终输出中的行,然后使用一些排名方法。你能告诉我你怎么说它可以是 32 吗?
-
没有“最优”k(好吧,k=N 在 SSE 0 下是最优的,但没用)。只有启发式。
-
是的,我现在真的明白了,它是启发式的,但仍然有一种定义方法,这就是我使用它的原因。我现在有点迷失了,认为 NbClust 包使用 WSS 提供了不同数量的集群,而计算 WSS 并绘制它的传统方法在相同数据上给了我 5 个集群。这是可能的吗?Nbclust 有更多的先验假设吗?
标签: r cluster-analysis k-means