是否有接受距离矩阵和原始向量的 Python Isomap 模块?

Is there a Python Isomap module that accepting distance matrix as well as original vectors?

Isomap in well-known scikit-learn 只接受普通向量作为输入。但我只有一个距离矩阵。还有其他 Python 模块处理这个吗?

Isomap 是一个两步过程:

1a。给定原始数据点,找到附近的邻居。 1b.当你只允许在附近的邻居之间跳跃时,根据点与点之间的距离计算距离矩阵 D。

  1. 运行 距离矩阵 D 的多维缩放。

备注: 1. 如果你已经有一个距离矩阵 D,你可以直接跳到第 2 步。 多维缩放算法也在sklearn中: http://scikit-learn.org/stable/modules/generated/sklearn.manifold.MDS.html

  1. 如果你的距离矩阵被计算为原始点之间的欧几里得距离(而不是,例如,一些最短路径跳跃距离),那么 MDS 的输出给出与此相同的结果原始点的PCA嵌入。

  2. 如果你有欧氏距离矩阵,但你想要Isomap嵌入而不是PCA嵌入,那么你需要做最近邻和最短路径计算。这可能需要:

一个。对于每个点,找到 k 个最近的点,并将到所有其他点的距离设置为无穷大,以创建一个新矩阵 D'。 b. 运行 Dijkstra 在 D' 上的所有对最短路径。 C。 运行 D' 上的 MDS。

祝你好运!