MDS(Multiple Dimensional Scalling)算法

MDS算法伪代码如下所示:

问题描述:如果知道美国若干个城市之间的距离,如何通过这些距离来刻画若干个城市之间的相对位置情况呢?

MDS算法是一种将多维的问题进行降低维度,以简化问题复杂度使得在有效时间内解决问题的方法。

解决问题的思路:原来距离矩阵的得到需要通过步骤X->B->D;现如今需要通过D->B->X'的方法来得到一个低维度的X‘.

算法描述:

       input:距离矩阵D是一个m*m矩阵,其元素distij是样本Xi到Xj间的距离,原来的问题维度为d,目标维度为d'(d'<d);

  • 求算B矩阵;
  • 对B矩阵进行特征值分解,得到特征值与特征向量
  • 取低于d的数目的最大特征值构成对角矩阵A,相对应的特征向量构成特征向量矩阵V

  output: 矩阵VA0.5是一个m*d'的矩阵,每一行是所要求得低维坐标。

相关原理介绍与相关例子参见博客:

http://blog.csdn.net/Dark_Scope/article/details/53229427

原文地址:https://www.cnblogs.com/liuji/p/7544951.html