一开始先上两幅图是因为通过上图我们可以对降维有一个直观形象的了解。降维亦称“维数约简”,是经过某种数学变换将原始高维属性空间变为一个低维“子空间”。在这个子空间中样本密度大幅度提高,距离计算也变得更为容易。为什么能进行降维?因为在很多时候,人们观测或收集到的数据样本虽是高维的,但是与学习任务密切相关的也许仅是某个低维分布,即高维空间中的一个低维嵌入。上图给出了一个直观的例子,原是高维空间中的样本点,在这个低维嵌入子空间中更容易进行学习。
这篇我们讲的是MDS(Mutiple Dimensional Scaling)多维缩放这样一种经典的降维方法,该方法的核心便是要求原始空间中样本之间的距离在低维空间中得以保持。怎么理解这句话呢,举个简单的例子:就比如说我们要画一张地图,现实中的地球是三维立体的,那么计算现实中个位置间的距离需在三维坐标下进行,但是现在我们要画一张二维的平面地图,当然我们保持其二维坐标中各个位置间的距离要和在三维坐标系下的一致,这就是高维距离与低维距离的一致性。接下的公式推导会让我们对该方法的核心有更深刻的理解。
我们先假定一个样本数量为n,特征维数为m的样本空间D∈Rn×mD \in R^{n \times m}D∈Rn×m,这n个样本在原始空间中的距离矩阵为Dist∈Rn×nD i s t \in R^{n \times n}Dist∈Rn×n,其中第i行j列的元素distijd i s t_{i j}distij为样本xi到xj的距离。我们的目标是获得样本在d’维空间的表示Z∈Rn×d′Z \in R^{n \times d^{\prime}}Z∈Rn×d′,d’≤\leq≤d,且任意两个样本在d’空间中的欧式距离等于原始空间中的距离。那么,我们设定等式:
∥zi−zj∥=distij\left\|z_{i}-z_{j}\right\|=d i s t_{i j}∥zi−zj∥=distij在此基础上求得降维后的样本空间Z。
现在我们已知的信息或者说是整个MDS算法的输入是原始的距离矩阵Dist,约束条件是∥zi−zj∥=distij\left\|z_{i}-z_{j}\right\|=d i s t_{i j}∥zi−zj∥=distij,接下要做的就是如何通过已知输入和约束条件求得Z。
首先,我们计算一个降维后样本的内积矩阵B,令B=ZZT∈Rn×nB=Z Z^{T} \in R^{n \times n}B=ZZT∈Rn×n,B中每个元素的值为:bij=∑k=1d′zikzjk b_{i j}=\sum_{k=1}^{d'} z_{i k} z_{j k} bij=k=1∑d′zikzjk接着我们计算一个降维后关于样本空间的距离矩阵D:
dij2=(zi−zj)2=∑k=1d′(zik−zjk)2=∑k=1d′zik2+zjk2−2zikzjk=bii+bjj−2bij (1) \begin{aligned} d_{i j}^{2} &=\left(z_{i}-z_{j}\right)^{2} \\ &=\sum_{k=1}^{d'}\left(z_{i k}-z_{j k}\right)^{2} \\ &=\sum_{k=1}^{d'} z_{i k}^{2}+z_{j k}^{2}-2 z_{i k} z_{j k} \\ &=b_{i i}+b_{j j}-2 b_{i j} (1) \end{aligned} dij2=(zi−zj)2=k=1∑d′(zik−zjk)2=k=1∑d′zik2+zjk2−2zikzjk=bii+bjj−2bij (1)而根据我们的约束条件,有dij2=distij2 (2)d_{ij}^{2}=dist_{ij}^{2} (2)dij2=