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