在实践中使用什么停止准则进行聚集聚类?


32

我发现了广泛的文献提出了各种标准(例如Glenn等,1985(pdf)和Jung等,2002(pdf))。但是,其中大多数都不容易实现(至少从我的角度来看)。我正在使用scipy.cluster.hierarchy获取群集层次结构,现在我试图确定如何从中形成平面群集。我的目标是发现观察结果中的常见模式,因此我没有参考将获得的聚类与之进行比较。谁能建议一个务实的解决方案?


在我的网页上,有一个“集群准则” zip集合,其中包含许多流行的内部集群准则(停止规则)的描述(和SPSS功能)。为您的信息。
ttnphns

Answers:


18

实际上,以下Wikipedia条目可以很好地解释最流行且相对简单的方法:

所述弯头方法启发式描述有可能是再加上目视检查最流行的,由于其简单的解释(方差量由群集的数量解释)。该信息论方法并不难实现要么和页面有一些伪代码,你可以用它来启动。后者类似于基于模型复杂度的惩罚可能性,如众所周知的信息标准(如AIC,BIC等)。


谢谢!维基百科上有关分层群集的文章没有链接到该文章。
比约恩·波莱克斯(BjörnPollex)2010年

2
啊对。现在已在“另请参见”链接下修复,感谢您指出!
ars 2010年

在“肘方法”中,如果要聚类的对象非常“复杂”怎么办?我的意思是它们不是简单的要点,而是复杂的数据集合。我已经弄清楚它们成对的距离(自定义距离)。我将如何计算所谓的“方差”以应用肘部方法?
西伯斯赌博

17

无论您使用哪种聚类方法,都很难为您提供一个关于如何选择数据中“最佳”聚类的明确解决方案,因为聚类分析旨在隔离统计单位组(无论是个体还是变量) ),本质上是出于探索或描述目的。因此,您还必须解释集群方案的输出,并且几个集群解决方案可能同样有趣。

现在,关于通常用来决定何时停止聚集数据的统计标准,如@ars所指出的,大多数是视觉引导的标准,包括对树状图的分​​析或聚类轮廓的检查,也称为轮廓图(Rousseeuw,1987)。 。还提出了几个数值标准,也称为有效性指数,例如Dunn有效性指数,Davies-Bouldin有效性指数,C指数,Hubert伽玛等等。分层聚类通常与k-means一起运行(实际上,k-means的多个实例,因为它是随机算法),因此它为找到的聚类解决方案增加了支持。我不知道所有这些东西是否都可以在Python中轻松获得,但是R中可以使用大量方法(请参见@mbq已经为一个相关问题引用了群集任务视图,可以使用哪些工具在MovieLens上应用群集算法?)。其他方法包括模糊聚类基于模型的聚类(在心理计量学社区中也称为潜在性状分析),如果您寻求更可靠的方法来选择数据中的聚类数量。

顺便说一句,我刚遇到了scipy-cluster这个网页,它是Scipy的扩展,用于生成,可视化和分析层次集群。也许它包括其他功能?我也听说过PyChem,它为多变量分析提供了相当不错的东西。

以下参考可能也有帮助:

Steinley,D.和Brusco,MJ(2008)。聚类分析中变量的选择:八个过程的经验比较。Psychometrika73,125-144。


感谢您的出色回答!实际上,您显示的分层集群模块已经是scipy的一部分。另外,scipy提供了k-means的实现,因此我可以轻松地使用它。
比约恩·波莱克斯(BjörnPollex)2010年

好的,我没有对此进行详细介绍。对于k均值,您需要注意以下事实:我们通常需要两个外部循环来验证群集解决方案(一个在其中您更改群集的数量,另一个在更改种子时-目的是最小化RSS);那么您可以使用Gap统计信息选择最佳的集群数。
chl 2010年

5

我最近成为集群图可视化方法(在R中实现)的基金。

我使用它作为一种额外的方法来评估“良好”数量的群集。将其扩展到其他聚类方法并不难(我确实做到了,只是没有发布代码)

替代文字

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.