为分层聚类选择正确的链接方法


33

我正在对从Google BigQuery的reddit数据转储收集和处理的数据进行分层聚类

我的过程如下:

  • 在/ r / politics中获取最新的1000条帖子
  • 收集所有评论
  • 处理数据并计算n x m数据矩阵(n:用户/样本,m:帖子/功能)
  • 计算距离矩阵进行层次聚类
  • 选择一种链接方法并执行分层聚类
  • 将数据绘制为树状图

我的问题是,如何确定最佳的链接方法是什么?我目前使用的Ward,但我怎么知道我是否应该使用singlecompleteaverage等?

我对这些东西还很陌生,但是我不确定是否有一个答案,因此我无法在网上找到明确的答案。那么,对于我的应用程序来说,什么是个好主意呢?请注意,在n x m矩阵具有多个零的意义上,数据是相对稀疏的(大多数人对多则帖子的评论不多)。


除了特定的链接问题之外,“ best”在您的上下文中意味着什么?
gung-恢复莫妮卡

最适合我的是找到链接我的数据的最合乎逻辑的方法。即:哪种方法准确地定义了我要素中的“距离”。
凯文·埃格尔

2
凯文,请看看这个答案和这个最近的问题。您将了解到,您正在提出的问题(“使用哪种方法”)并不容易。在了解方法之间的差异并能够进行选择之前,您一定应该阅读有关聚类(至少是层次结构)的文献。数据分析不能一概而论。
ttnphns

1
@ttnphns,感谢您的链接-是一本好书,我将考虑这些要点。
凯文·埃格尔,

Answers:


58

方法概述

关于分层聚集聚类分析(HAC)的某些链接方法的简短参考。

HAC算法的基本版本是一种通用算法。这就等于在每一步上都使用称为Lance-Williams公式的公式来更新出现的(由两个合并)的群集与到目前为止存在的所有其他群集(包括单例对象)之间的邻近度。存在不使用Lance-Williams公式的实现。但是使用它很方便:它允许一个代码通过同一模板来编码各种链接方法

递归公式包括几个参数(α,β,γ)。根据链接方法的不同,参数设置也不同,因此展开的公式将获得特定的视图。HAC上的许多文本都显示了该公式,其特定于方法的视图并解释了这些方法。我会推荐Janos Podani的文章非常详尽。

不同方法的空间和需求来自以下事实:两个集群之间或集群与单例对象之间的接近度(距离或相似性)可以用多种方式表示。HAC在每个步骤中合并两个最接近的聚类或点,但是如何计算前面提到的仅在单例对象之间定义输入接近矩阵的接近度,却是要解决的问题。

因此,这些方法在每个步骤上如何定义两个群集之间的邻近度方面有所不同。“聚集系数”(以聚集计划/历史记录的形式输出,并在树状图上形成“ Y”轴)只是在给定步骤中合并的两个群集之间的接近度。

  • 方法单一联动或近邻。两个聚类之间的接近度是两个聚类之间的接近度。该值是输入矩阵的值之一。这种簇的概念隐喻光谱链条。链可以是直的或曲线的,也可以像“雪花”或“ amoeba”视图。与两个最相似的集群成员相比,两个最不相似的集群成员可能碰巧非常不同。单链接方法仅控制最近邻的相似性。

  • 方法完全联动或最远的邻居。两个聚类之间的接近度是它们两个最远的对象之间的接近度。该值是输入矩阵的值之一。这种集群结构的隐喻是圆形(从某种意义上说,是出于爱好或情节),其中彼此最远的两个成员之间的相似性不可能比其他完全不同的对(如圆圈中)更为相似。这样的簇通过其边界是“紧凑的”轮廓,但是它们内部不一定是紧凑的。

  • 的方法平均组间连接(UPGMA)。两个聚类之间的邻近度是一侧的对象与另一侧的另一对象之间的所有邻近度的算术平均值。这种集群构建的隐喻是非常通用的,只是统一或紧密联系的集体。并且该方法经常被设置为层次集群包中的默认方法。可以生成其他形状和轮廓的簇。

  • 简单平均组间平均平均链接的方法(WPGMA)是先前的改进方法。两个聚类之间的接近度是一侧的对象与另一侧的对象之间的所有邻近度的算术平均值;尽管这两个集群最近合并的子集群对邻近性的影响相同,即使这些子集群的对象数量不同。

  • 的方法组内平均连锁(MNDIS)。两个簇之间的接近度是它们联合簇中所有接近度的算术平均值。此方法是UPGMA的替代方法。就簇密度而言,它通常会丢失它,但有时会发现UPGMA不会发现的簇形状。

  • 心法(UPGMC)。两个聚类之间的接近度是它们的几何质心之间的接近度:它们之间的[平方]欧几里德距离。这种集群构建的隐喻是平台(政治)的接近性。像在政党中一样,这样的集群可以有部分或“派系”,但除非其核心人物彼此分开,否则联盟是一致的。群集的轮廓可以多种多样。

  • 中位数法或平衡质心法(WPGMC)是先前的改进方法。两个聚类之间的接近度是它们的几何质心之间的接近度(它们之间的平方欧氏距离);虽然定义了质心,以便最近合并了这两个群集的子群集对其质心的影响均等-即使这些子群集的对象数量不同。

  • SS12(SS1+SS2)2。从直觉上讲,一种类型的云是更密集且朝向其中间同心的云,而边缘点很少,并且可以相对自由地散布。

一些不太为人所知的方法(请参阅Podany J. New组合聚类方法// Vegetatio,1989,81:61-77。)[也由我实现为在网页上发现的SPSS宏]:

  • SS122

  • MS12(n1MS1+n2MS2)/(n1+n2)=[SS12(SS1+SS2)]/(n1+n2)4

  • 中号小号12=小号小号12/ñ1个+ñ2。(在两个单例对象之间,此数量=欧几里德距离的平方/4)。

前5种方法允许使用任何接近度度量(任何相似性或距离),结果自然取决于所选择的度量。

后6种方法需要距离;完全正确的方法是仅使用平方欧几里德距离,因为这些方法计算的是欧几里德空间中的质心。因此,为保证几何正确性,距离应为欧式(这6种方法一起称为几何链接方法)。在最坏的情况下,您可能会输入其他指标接受更多启发式,不太严格的分析的距离。现在关于那个“平方”。质心的计算和与质心的偏差在数学上/程序上最方便地在平方距离上执行,这就是为什么HAC包通常需要输入并进行调整以处理平方的原因。但是,存在基于非平方距离输入并需要这些距离的实现方式-完全等效,但速度稍慢。参见例如Ward方法的“ Ward-2”实现。您应该查阅群集程序的文档,以了解正确输入“几何方法”时期望的距离(平方或不平方)。

方法MNDIS,MNSSQ和MNVAR除了更新Lance-Williams公式外,还需要一些步骤来存储集群内统计信息(取决于方法)。

在预期簇或多或少是实心圆云的研究中,最常用的方法是平均链接法,完全链接法和Ward方法。

Ward方法的性质和效率最接近K-means聚类。它们具有相同的目标功能-“最终”最小化群集内群集SS。当然,与Ward相比,K均值(是迭代的,并且如果提供适当的初始质心)通常是更好的最小化方法。但是,在我看来,沃德在发现物理尺寸不均(方差)的星团或非常不规则地向太空投掷的星团时,比K均值更为精确。MIVAR方法对我来说很奇怪,我无法想象何时可以推荐它,它不会产生足够密集的簇。

方法质心,中位数,方差的最小增加–有时可能会产生所谓的逆转:一种现象,当在某个步骤处合并的两个聚类比早先合并的成对的聚类显得彼此靠近时。这是因为这些方法不属于所谓的超量法。这种情况不方便,但从理论上讲可以。

单链接和质心的方法属于所谓的空间收缩或“链接”。粗略地说,这意味着它们倾向于将对象一个接一个地附加到聚类上,因此它们表现出曲线“聚类对象的百分比”相对平稳的增长。相反,完全链接,沃德,平方和,方差增加和方差的方法通常即使在早期步骤中也会获得相当大的聚类对象份额,然后继续合并,因此它们的曲线“占聚类对象的百分比”从第一步开始就很陡峭。这些方法称为空间膨胀。其他方法介于两者之间。

灵活的版本。通过将附加参数添加到Lance-Willians公式中,可以使方法在步骤上变得特别自调整。该参数对正在计算的群集间接近度进行校正,该校正取决于群集的大小(解压缩量)。该参数的含义在于,它使结块方法比注定的标准方法具有更多的空间扩张或空间收缩。迄今为止,灵活性的最广为人知的实现方式是采用UPGMA和WPGMA的平均链接方法(Belbin,L.等人。两种Beta-Flexible聚类方法的比较//多元行为研究,1992,27,417-433。 )。

树状图。在树状图“ Y”轴上,通常显示的是合并簇之间的接近度-如上述方法所定义。因此,例如,在质心法中,通常测量平方距离(最终取决于包装及其选项)-一些研究还没有意识到这一点。同样,按照传统,使用基于非密度增量的方法(例如Ward方法),通常在树状图上显示的是累积值-出于方便的原因,它比理论方法要早。因此,(在许多程序包中)沃德方法中绘制的系数代表了在所有群集中在给定步骤的瞬间观察到的群集内平方和的总体。

人们应该通过比较树状图的外观来避免判断哪种链接方法对他的数据“更好”:不仅因为外观在更改绘制的系数的修改时会发生变化(如前所述),而且还因为即使在没有聚类的数据上,外观也会有所不同

选择“正确”的方法

没有单一标准。在此答案及其中的整个主题中,概述了一些指南,介绍了如何选择聚类分析的方法(包括在特殊情况下的HAC中的链接方法)。


1

距离矩阵和同位距离之间的相关性是帮助评估选择哪个聚类链接的一种度量。来自?cophenetic

可以说,如果原始距离和后代距离之间的相关性很高,则树状图是某些数据的适当总结。

cor(dist,cophenetic(hclust(dist)))vegan 小插图的第38页中提到了作为链接选择度量的使用。

请参见下面的示例代码:

# Data
d0=dist(USArrests)

# Hierarchical Agglomerative Clustering
h1=hclust(d0,method='average')
h2=hclust(d0,method='complete')
h3=hclust(d0,method='ward.D')
h4=hclust(d0,method='single')

# Cophenetic Distances, for each linkage
c1=cophenetic(h1)
c2=cophenetic(h2)
c3=cophenetic(h3)
c4=cophenetic(h4)

# Correlations
cor(d0,c1) # 0.7658983
cor(d0,c2) # 0.7636926
cor(d0,c3) # 0.7553367
cor(d0,c4) # 0.5702505

# Dendograms
par(mfrow=c(2,2))
plot(h1,main='Average Linkage')
plot(h2,main='Complete Linkage')
plot(h3,main='Ward Linkage')
plot(h4,main='Single Linkage')
par(mfrow=c(1,1))

我们看到,对于相关性averagecomplete极为相似,他们的dendograms看起来非常相似。的相关性ward与相似averagecomplete但树状图看起来相当不同。single链接是在做自己的事。来自主题专家的最佳专业判断,或对感兴趣领域中某个链接的优先考虑,都应该优先于的数字输出cor()

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.