数据降维(二)多维缩放MDS

多维缩放MDS

多维缩放(Multiple Dimensional Scaling,MDS)
问题形式化:

  • 给定空间中任意两个点的距离(pairwise distances ), 点的精确坐标和维度是未知的.
  • 我们希望将这些点嵌入到一个低维的空间中,使得新的空间中点对之间的距离和原始空间中的距离尽可能接近.
    基本思想:
    d d' 空间的欧式距离等于原始空间的欧式距离
    z i z j = d i s t i j , d i s t i j = D i j ||z_i - z_j|| = dist_{ij},dist{ij} = D_{ij}

推导

B = Z T Z R m × m , b i j = z i T z j B=Z^TZ\in R^{m\times m}, b_{ij}=z_i^Tz_j
d i s t i j 2 = z i 2 + z j 2 2 z i T z j = b i i + b j j 2 b i j dist_{ij}^2 = ||z_i||^2 + ||z_j||^2 - 2z_i^Tz_j = b_{ii} + b_{jj} - 2b_{ij}
假定 Z Z 已经标准化(中心为0), i = 1 m z i = 0 \sum_{i=1}^mz_i=0 ,用 D D 表示 B B .

b i j = 1 2 ( d i s t i j 2 b i i b j j ) = 1 2 ( d i s t i j 2 1 m ( j = 1 m d i s t i j 2 t r ( B ) ) 1 m ( i = 1 m d i s t i j 2 t r ( B ) ) ) = 1 2 ( d i s t i j 2 1 m j = 1 m d i s t i j 2 1 m i = 1 m d i s t i j 2 + 2 m t r ( B ) ) = 1 2 ( d i s t i j 2 1 m j = 1 m d i s t i j 2 1 m i = 1 m d i s t i j 2 + 1 m 2 i = 1 m j = 1 m d i s t i j 2 ) = 1 2 ( d i s t i j 2 d i s t i 2 d i s t j 2 + d i s t 2 ) \begin{aligned} b_{ij} &= - \frac{1}{2}(dist_{ij}^2-b_{ii} - b_{jj})\\ &= - \frac{1}{2}(dist_{ij}^2-\frac{1}{m}\Big(\sum_{j=1}^mdist_{ij}^2 - tr(B)\Big) - \frac{1}{m}\Big(\sum_{i=1}{m}dist_{ij}^2 - tr(B)\Big))\\ & = - \frac{1}{2}\Big(dist_{ij}^2-\frac{1}{m}\sum_{j=1}^mdist_{ij}^2 - \frac{1}{m}\sum_{i=1}^{m}dist_{ij}^2 + \frac{2}{m}tr(B)\Big)\\ & = - \frac{1}{2}\Big(dist_{ij}^2-\frac{1}{m}\sum_{j=1}^mdist_{ij}^2 - \frac{1}{m}\sum_{i=1}^{m}dist_{ij}^2 + \frac{1}{m^2}\sum_{i=1}^m\sum_{j=1}^mdist_{ij}^2\Big)\\ & = - \frac{1}{2}(dist_{ij}^2 -dist_{i\cdot}^2 - dist_{j\cdot}^2 + dist_{\cdot\cdot}^2) \end{aligned}

B B 做特征值分解
B = V Σ V T B = V\Sigma V^T
Σ = d i a g ( λ 1 , λ 2 λ d ) \Sigma = diag(\lambda_1,\lambda_2\dots\lambda_d)
Σ = d i g a ( λ 1 , λ 2 λ d ) , λ 1 > λ 2 > λ d > 0 \Sigma_* = diga(\lambda_1,\lambda_2\dots\lambda_{d^*}), \lambda_1>\lambda_2>\cdots\lambda_{d^*}>0
V V_* 是对应的特征向量组成的矩阵,那么
Z = Σ 1 / 2 V T R d × m Z = \Sigma_*^{1/2}V_*^T \in R^{d^*\times m}
实际上,我们使用 d d d'\ll d 特征值矩阵 Σ ~ = d i a g ( λ 1 , λ 2 λ d ) \tilde{\Sigma} = diag(\lambda_1,\lambda_2\dots\lambda_{d'})
Z = Σ ~ 1 / 2 V ~ T R d × m Z = \tilde{\Sigma}^{1/2}\tilde{V}^T\in R^{d'\times m}

MDS算法过程

输入:距离矩阵 D R m × m D\in R^{m\times m} ,低维空间维度 d d'

算法过程

  • d i s t i 2 , d i s t j 2 , d i s t 2 dist_{i\cdot}^2, dist_{\cdot j}^2, dist_{\cdot \cdot}^2
  • 计算 B = ( b i j ) B = (b_{ij})
  • B B 做特征值分解
  • Σ ~ \tilde{\Sigma} 是包含 d d' 最大特征值的对角矩阵, V ~ \tilde{V} 是特征向量组成的矩阵.

输出 Σ ~ 1 / 2 V ~ T R d × m \tilde{\Sigma}^{1/2}\tilde{V}^T \in R^{d'\times m}

猜你喜欢

转载自blog.csdn.net/JN_rainbow/article/details/84559323