MDS

时间:2023-03-09 16:03:47
MDS

转载:https://blog.csdn.net/victoriaw/article/details/78500894

多维缩放(Multidimensional Scaling, MDS)是一组对象之间的距离的可视化表示,也可以当做一种无监督降维算法使用。

为了直观了解MDS,给一个简单例子。假设现在给定一组城市之间的距离信息如下:
MDS

现在要求绘制一幅地图,在地图中标出所有城市,并且城市之间的距离等于上表中给出的距离。显然,这种图不是唯一的,因为平移、旋转操作并不改变距离。其中一种绘制方法如下图:

MDS

MDS应用在数据降维时,基本思想和上面的例子相同:保证所有数据点对在低维空间中的距离等于在高维空间中的距离

假设给定N个实例,可以计算出原始空间中的距离矩阵D∈RN×ND∈RN×N,其中第ii行第jj列的元素dijdij表示第ii个实例和第jj个实例之间的距离。现在希望把数据降维到d′d′维空间中去,得到所有样本点在d′d′中的表示Z∈RN×d′Z∈RN×d′,其中zTi,:∈Rd′zi,:T∈Rd′表示第ii个实例,并且任意两个实例在d′d′维空间中的距离等于原始空间中的距离。事实上,可以推导出满足此条件ZZ的解析解。

由保持距离原则可知

d2ij=||zi−zj||2=||zi||2+||zj||2−2zTizj.(1)(1)dij2=||zi−zj||2=||zi||2+||zj||2−2ziTzj.

不失一般性,我们假设低维空间中的实例点是中心化的,即

∑i=1Nzi=0,∑i=1Nzi=0,

那么对公式(1)的左右两边求和,有

∑i=1Nd2ij=∑i=1N||zi||2+N||zj||2,(2)(2)∑i=1Ndij2=∑i=1N||zi||2+N||zj||2,
∑j=1Nd2ij=N||zi||2+∑j=1N||zj||2,(3)(3)∑j=1Ndij2=N||zi||2+∑j=1N||zj||2,
∑i=1N∑j=1Nd2ij=2N∑i=1N||zi||2,(4)(4)∑i=1N∑j=1Ndij2=2N∑i=1N||zi||2,

由(2)(3)(4)可知:

1N∑i=1Nd2ij=1N∑i=1N||zi||2+||zj||2,(5)(5)1N∑i=1Ndij2=1N∑i=1N||zi||2+||zj||2,
1N∑j=1Nd2ij=||zi||2+1N∑j=1N||zj||2,(6)(6)1N∑j=1Ndij2=||zi||2+1N∑j=1N||zj||2,
1N2∑i=1N∑j=1Nd2ij=21N∑i=1N||zi||2,(7)(7)1N2∑i=1N∑j=1Ndij2=21N∑i=1N||zi||2,

定义内积矩阵B=ZZT∈RN×NB=ZZT∈RN×N,即bij=zTizjbij=ziTzj。则

bij=−12(1N2∑i=1N∑j=1Nd2ij−1N∑i=1Nd2ij−1N∑j=1Nd2ij+d2ij).(8)(8)bij=−12(1N2∑i=1N∑j=1Ndij2−1N∑i=1Ndij2−1N∑j=1Ndij2+dij2).

对矩阵BB做特征分解,得到

B=VΛVT,(9)(9)B=VΛVT,

其中,ΛΛ是由B的特征值生成的对角矩阵,VV是特征向量作为列的矩阵。

我们希望降到d′d′维空间中,那么选择前d′d′个最大特征值及对应的特征向量,得到Λd′Λd′和Vd′Vd′,则降维后的特征表示为

Z=Vd′Λ12d′.(10)(10)Z=Vd′Λd′12.

参考

[1] Multidimensional Scaling: Definition, Overview, Examples
[2] 数据降维之多维缩放MDS(Multiple Dimensional Scaling)

---------------------

本文来自 CodeTutor 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/victoriaw/article/details/78500894?utm_source=copy