ISOMAP(等规度映射方法)

* ISOMAP算法
** 基本思想
   Tenenbaum等人提出了ISOMAP算法,这个是建立在MDS(Multi-Dimensional Scaling)之上,是一种非线性维数约简方法.ISOMAP利用所有样本的之间的测地距离矩阵代替MDS中的距离矩阵.从而保持低维流形空间的测地距离.
** 算法步骤
1) 构造近邻图
   定义一个包含所有样本的图G,如果样本点Xi和Xj的欧氏距离d(Xi, Xj)小于一个阈值ξ或者Xj为Xi的k近邻点,那么Xi与Xj相连,并且边权重为d(Xi,Xj)
2) 计算最短路
   如果两个点Xi与Xj有边,那么距离为dg(Xi, Xj) = d(Xi, Xj),否则为正无穷,然后设置l为1,2,3...,n,任意两个点之间的最短路为dg(Xi, Xj) = min{dg(Xi, Xk) + dg(Xk, Xj), dg(Xi, Xj)},使用dg矩阵作为距离矩阵
3) 计算d维嵌入
   使用MDS对测地距离矩阵计算低维嵌入,设置ri为矩阵r(Dg)的第i个按照降序排列的特征值,Vij是第i个特征的第j个分量,那么d维嵌入Yj的第i个分量就是sqrt(ri * Vij),其中,r(Dg) = -(HSH)/2, H为中心化矩阵,S=dg^2
** 算法分析
   这是一种保持全局特性的方法,可以反应测地距离,如果高维观测样本所在的低维流形与欧式空间的一个子集是整体等距的,那么就可以用比较理想的结果,但是当流形的曲率较大或者流形上有孔洞的话,也就是
流形等距的欧式空间的子集非凸时,会有较大的误差,并且会导致嵌入变形.
   如果从算法时间复杂度分析,在计算多源最短路使用Floyd算法会有O(n^3)复杂度,使用Dijkstra算法为O(Kn^2logn),使用MDS分解时候,由于距离矩阵为稠密矩阵,那么结果为O(n^3)复杂度.

你可能感兴趣的:(高维数据的流形学习分析方法)