两个簇之间的马氏距离

数据挖掘 聚类 距离
2022-02-10 17:07:04

我想计算集群和集群之间的马氏距离,每个集群都由一组多维点组成。假设没有相关性,可以使用归一化欧几里得距离公式计算随机点和簇abpb

d(p,b)=i=1d(pibi)2σi2

其中是维数,是集群中每个维度的平方标准差。dσi2b

现在,我想估计集群之间的马氏距离。我应该假设集群是一个点(即的质心)吗?或者我应该使用两个集群的标准差进行归一化?在后一种情况下,将转换为以下公式:abaa

d(a,b)=i=1d(aibi)2(σia)2(σib)2

其中集群的标准差,而是集群的标准差σibibσiaia

先感谢您。

3个回答

---------请检查此答案的编辑---------

据我说,它非常特定于应用程序,并且取决于您想要做什么。我会更喜欢通用应用程序中的第二种方法,因为如果我们正在计算距离的两个集群之间的标准偏差很高,那么距离应该很小。我能想到的另一种方法是 2 的组合。计算 2 个质心之间的 Mahalanobis 距离,并通过两个集群的标准偏差之和来减少它。我想到了这个想法,因为当我们计算 2 个圆之间的距离时,我们会计算来自不同圆的最近点对之间的距离。现在考虑以圆心为中心的圆的周长。其余的很明显:)

编辑:

正如@MarcusD 在评论中指出的那样,我将尝试解释一下:

  1. 我评论说“非常特定于应用程序”,因为在某些情况下,无论数据的标准偏差如何,我们的答案都应该保持不变,那么第一种方法会更好。

  2. 供参考检查。Kevin murphy- ML 一种概率方法 Pg。104, 2 类 LDA。第二种方法正是这种方法。如果你没有这本书,谷歌线性判别分析。

    1. 我给出的方法在理论上与 LDA 没有什么不同,但在集群数量较少的情况下实现起来稍微容易一些。

Mahalanobis 距离取决于协方差矩阵,该矩阵通常是每个集群的局部变量。

如果您想要两个集群的距离,以下两种方法很突出:

  1. 每个对象到其他集群的加权平均距离,使用其他集群的马氏距离。您可以仅使用质心的距离来近似此值。也许使用两个集群中的最大值来解决不对称性。这可能不是一个指标。

  2. 散度测量,测量两个高斯的重叠,而不是单个数据点的重叠。我相信一些分歧措施应该是公制的。

为什么不将簇间距离计算为从簇 A 中的每个点到簇 B 中的每个点的平均马氏距离?