使用相关性作为距离度量(用于层次聚类)

机器算法验证 相关性 聚类 距离 层次聚类
2022-02-06 10:18:41

我想对我的数据进行分层聚类,但我不想使用欧几里得距离,而是想使用相关性。此外,由于相关系数的范围从 -1 到 1,在我的研究中,-1 和 1 都表示“共同调节”,我将 -1 和 1 都视为 d = 0。所以我的计算是 d=1|r|

我在一个单独的问题(关于 k-means 聚类)中读到,您应该使用余弦定理将r转换为真正的欧几里得d :d=2(1r)

将相关性转换为层次聚类距离的最准确方法是什么?

1个回答

层次聚类的要求

层次聚类可以与任意相似性和相异性度量一起使用。(大多数工具都期望有差异,但允许负值 - 由您决定是否首选小值或大值。)。

只有基于质心或方差的方法(例如 Ward 方法)是特殊的,并且应该与平方欧几里得一起使用。(要了解原因,请仔细研究这些联系。)

单联动、平均联动、完全联动影响不大,仍然是成对差异的最小/平均/最大。

相关性作为距离度量

如果您预处理数据(n观察,p特征),使得每个特征都有μ=0σ=1(这不允许恒定特征!),然后相关性降低为余弦:

Corr(X,Y)=Cov(X,Y)σXσY=E[(XμX)(YμY)]σXσY=E[XY]=1nX,Y

在相同条件下,平方欧几里得距离也减少为余弦:

dEuclid2(X,Y)=(XiYi)2=Xi2+Yi22XiYi=2n2X,Y=2n[1Corr(X,Y)]

因此,除非您的数据是退化的,否则使用相关性进行层次聚类应该是可以的。只需如上所述对其进行预处理,然后使用平方欧几里德距离。