有没有用Python编写的算法,可以在不同范数向量空间之间转换坐标?

3
假设我有一个kxn的数据数组,其中包含向量列和在这些向量上定义的距离函数。如何将kxn数组转换为另一个相同形状的数组,使得转换后向量之间的欧几里德范数是由给定距离函数产生的范数?我知道您可以通过给定的距离函数直接计算数据的距离矩阵,并由此推导出R^k中的坐标。但当距离函数的复杂度为O(n^2)或更高时,这种方法非常昂贵。因此,我想知道是否有任何更简单的算法来解决这个问题。
1个回答

0

听起来你在描述多维缩放(MDS)。Python中的一种方法是使用scikit-learn的sklearn.manifold.MDS

MDS期望输入NxN距离(或“差异”)矩阵,因此这不能避免评估距离函数的成本。对于此转换,不可避免地需要距离矩阵,因此如果距离函数本身很昂贵,似乎最好的方法是减少样本数量或寻找计算快速近似距离的方法以加速处理。此外,请注意MDS通常只是近似值。数值优化寻找最佳拟合欧几里得范数到给定距离。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接