python - 是否有用于不同范数向量空间之间坐标转换的python算法?

标签 python coordinate-systems

假设我有一个 kxn 数据数组,其中包含向量列和在这些向量上定义的距离函数。如何将 kxn 数组转换为另一个相同形状的数组,以便转换后的向量中的欧几里德范数是由给定距离函数导出的范数?我知道您可以通过给定的距离函数直接计算数据的距离矩阵,并由此导出 R^k 中的坐标。但是这种方法真的很昂贵,尤其是当距离函数的复杂度为 O(n^2) 或更高时。所以我想知道是否有任何更简单的算法可以做到这一点。

最佳答案

听起来你在描述 multidimension scaling (MDS) .在 Python 中执行此操作的一种方法是使用 scikit-learn 的 sklearn.manifold.MDS .

MDS 期望 NxN 距离(或“相异性”)矩阵作为输入,因此这不会绕过评估距离函数的成本。这种转换不可避免地需要距离矩阵,因此如果距离函数本身很昂贵,那么最好的办法似乎是减少样本数量或寻找一种方法来计算快速近似距离以加快速度。另外,请注意 MDS 通常只是近似值。数值优化寻找欧几里得范数与给定距离的最佳拟合。

关于python - 是否有用于不同范数向量空间之间坐标转换的python算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63783064/

相关文章:

mysql - 在服务器上存储 GPS 坐标(轨迹)的最佳方式

C# WPF OxyPlot x, y 应该具有相同的缩放比例

xml - SVG 路径 - 如何自动翻译原点?

python - 使用 python 需求文件,您可以控制安装包依赖项的顺序吗?

python - 在 Python 中从文件名中提取扩展名

python - 无法在 mac 上使用 easy_install 或 pip 安装

python - 通过直方图匹配比较图像

javascript - 使用proj4和EPSG代码变换成不同的坐标系

javascript - 如何找到离原点最近的坐标?

python - 如何在 Python 中从 etc/sysconfig 中检索值