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

时间:2016-02-26 14:01:41

标签: python machine-learning visualization

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

1 个答案:

答案 0 :(得分:4)

Isomap是一个两步过程:

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

  1. 在距离矩阵D上运行多维缩放。
  2. 注意: 1.如果您已有距离矩阵D,则可以跳到第2步。 多维缩放算法也在sklearn中: http://scikit-learn.org/stable/modules/generated/sklearn.manifold.MDS.html

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

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

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

      祝你好运!