【发布时间】:2014-03-14 11:21:51
【问题描述】:
假设我们有一个由 N 个样本组成的 N × N 成对距离矩阵 (D_ij)。但是我们没有这 N 个样本的坐标。每个样本也有一个权重。我想计算这些点集之间的加权平均值。例如在s1={1,2,3} 和s2={4,5,6} 之间。
如果我们有坐标 (x1,x2,...),这很容易做到:
D{s1,s2} = distance(w1*x1+w2*x2+w3*x3, w4*x4+w5*x5+w6*x6)
仅使用成对距离和权重是否可以在没有坐标的情况下获得相同的结果?
我可以想出一个为单个样本和一组之间的距离定义的公式,如下所示,但我不知道如何将其扩展为两组之间的距离:
假设s={x1, x2}
D{x3,s} = (w1*D{x1,x3}^2+w2*D{x2,x3}^2)/(w1+w2)-(w1*w2*D{x1,x2}^2)/(w1+w2)^2
PS:我知道我们可以将距离矩阵转换为坐标(例如使用multidimensional scaling)。我正在寻找跳过此步骤的方法。
【问题讨论】:
-
我怀疑是否有独特的解决方案。您可以任意旋转和平移这些点,并且距离不会改变。但是,平均值会。
-
谢谢尼科。我觉得你说的有道理。但如果这是真的,为什么我们可以在没有坐标的情况下唯一地计算一个点和一个集合之间的距离?类似于我提到的公式。
-
更多想法:我错了。我认为旋转和平移不会改变结果。请注意,我们不需要加权平均坐标。我们想要两组加权平均值之间的距离。
-
那么你想求两组平均值的距离吗?公式出自哪里?也许它的证明包含更多关于如何扩展它的提示。顺便说一句,公式是否假设权重总和为 1?
-
感谢您的回复。我想使用样本的成对距离矩阵计算两组加权平均值之间的距离。我的最终目标是实现centroid linkage clustering algorithm 的新版本。我想为节点分配一些权重。因此,与其计算每个簇的质心,不如计算每一步的质心(加权平均值)。可以使用样本的坐标来完成(类似于我在问题中显示的内容)。但不是距离矩阵(据我所知当然)
标签: algorithm math matrix coordinates