MDS(multidimensional scaling)算法介绍
MDS(multidimensional scaling)算法介绍
1. 理论介绍
MDS与PCA一样,是一种有效的降维方式,其可获得样本间相似性的空间表达。MDS的原理可以简述为,利用样本的成对相似性,构建一个低维空间,使每对样本在高维空间的距离与在构建的低维空间中的样本相似性尽可能保持一致。
2. 技术实现
MDS算法,对于M类N个样本,首先产生一个距离集合:
其中,xi-xj≈δi,j ,对于经典的MDS,这个距离采用欧式距离计算,但其实它可以是任意一个函数,根据不同的需求。(但也有一定的限制)
同样,我们再生成一个矩阵 B:
B = XXT,(n×n)
= (XM)(XM)T
= XMMTX
= XXT
矩阵B正是我们需要的矩阵,用它来表征原数据的分布。可以看到,一对正交基底并不能改变B的大小,这意味着仅通过B不能完全还原数据的分布,但因为正交基地代表的都是旋转、平移、反转等操作,并不影响实际数据中点之间的距离,所以它仍然适用。
再对于矩阵B,其中每一个元素值为:
计算距离矩阵D,每个元素值为:
本着B的值不随平移改变的思路,首先对输入数据做去中心化处理,则使得B的任意行和列之和为0,根据对距离矩阵的推导,最终:
,
接下来经过一系列的矩阵运算,其结果是为了通过矩阵D得到矩阵B。在通过D得到B之后,下一步需要把B转化成X,对B矩阵进行特征分解,
B = VΛVT
这里,我们选择前p个特征值和特征向量对B进行表征(和PCA的相似点),则
3. 实验比较
根据世界18个城市的航线距离,对城市的位置进行估算。可以看出,MDS有效的把多维数据转化成了低维数据(三维),并方便的可视化。
4.数据适用性
根据其实现原理,我认为MDS不完全适合于大规模数据的运算,在生成距离矩阵D的时候,其矩阵规格达到了N×N,仅此步的复杂度为:
Q = N * N * D * D = (N*D)2
若一个10000×20的数据,Q = 4000M