我有一个问题,它是关于'Isomap'非线性降维,在正常情况下我引入的矩阵距离为100 * 100 我应用Isomap [http://isomap.stanford.edu/][1]我得到100分的坐标,在其他情况下我不明白为什么,用150 * 150的矩阵我获得35或50分的juste?
答案 0 :(得分:0)
Isomap的第一步通常是创建一个“最近邻居矩阵”,以便每个点都连接到它的4或6或8或最近邻居。
因此,您可以从100 x 100的距离矩阵开始,每个点与其他99个点之间的距离,在此第一步之后,除了(4或6或8)个最近点之外的任何点的距离都设置为无穷大。
然后Isomap计算最短路径距离,在附近点之间跳跃以获得更远的点。
在你的情况下,当你创建一个150点的矩阵时,我认为一旦你只在第一步中保持附近的点,点就会断开,并且在远点之间有路径。许多Isomap代码的默认行为是返回最大连接点集合的Isomap嵌入。
你怎么解决这个问题? 1.你可以增加你使用的最近邻居的数量,直到你得到所有的点数。
警告:在许多自然情况下,如果你包括大多数或所有邻居,这最终会导致程序的最短路径部分什么也不做,这就减少了一个叫做“多维缩放”的问题。给出一个线性嵌入。