R 在定义簇数的绘图中,应该考虑膝盖还是肘部?

R 在定义簇数的绘图中,应该考虑膝盖还是肘部?,r,cluster-analysis,k-means,R,Cluster Analysis,K Means,我正在使用肘部法,剪影,并试图从数据中找到k m簇的最佳数目。现在,大多数包,它给出了3与PAM,KFEED,克拉拉,如果我考虑WSS(相似性得分内)或剪影。通过Hubert分析,我得到了理想的2个簇。唯一奇怪的是下面的命令给了我一个情节,这让我有点困惑。我应该把它看成是3个簇还是4个?如果有人能给我一些反馈 使用的代码 wss <- (nrow(scale(df))-1)*sum(apply(scale(df),2,var)) for (i in 2:10) wss[i]

我正在使用肘部法,剪影,并试图从数据中找到k m簇的最佳数目。现在,大多数包,它给出了3与PAM,KFEED,克拉拉,如果我考虑WSS(相似性得分内)或剪影。通过Hubert分析,我得到了理想的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")

wss的基本思想是,低“平方和内”是一个好模型的信号(就误差而言)。然而,聚类越多,该平方误差之和(SSE)的值越低

简单地说:“当你看到苏格兰和南方能源公司(SSE)的下降速度(集群数量更多)正在放缓时,这将是冻结集群数量的好时机。”

因此,在你的例子中,它是肘部,在数字4,因为苏格兰和南方能源公司的下跌在4之后正在放缓

另见:和


在维基百科上有一个关于如何确定集群数量的极好概述:

谢谢你的回答。我有点困惑,因为正如我所说,PAM、CLARA甚至kmeans的剪影和wss方法给了我3个最佳的ks。只有这个带有wss for kmeans的图为我提供了4个,但我有点困惑它是3还是4。另外,当我使用休伯特多数规则与欧几里得距离和完成和沃德。D2,它是2个集群,而与kmeans,它是3。所以我想对这幅图发表第二个意见,因为对我来说它是4,是的,它应该是SSE下降或放缓的点,所以它应该是4。谢谢,我会接受的。我很高兴,我很高兴能帮上忙。我添加了一个维基百科文章的链接,如果你感兴趣的话。别忘了这是一个启发,真正的解决方案可能是2。或5。或者42.2和5是更现实的东西,但是42是在迭代过程中任意聚类k的东西。每次都能看到。我不喜欢使用迭代k的方法,而是希望使用一种基于行缩放为数据找到最佳k的方法,因为我希望减少最终输出中的行,然后使用某种排序方法。你能告诉我你怎么说它可以是32吗?没有“最优”k(好吧,k=N对于SSE 0是最优的,但没有用)。只有启发式。是的,我现在真的明白了,它是启发式的,但仍然有一种定义的方法,这就是为什么我使用它。我现在有点不知所措,认为包NbClust提供了不同数量的带有WSS的集群,而传统的计算WSS和绘制WSS的方法在相同的数据上提供了5个集群。这是可能的,Nbclust有更多的先验假设吗?