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

文章目录

  • 多维缩放MDS
    • 推导
    • MDS算法过程

多维缩放MDS

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

  • 给定空间中任意两个点的距离(pairwise distances ), 点的精确坐标和维度是未知的.
  • 我们希望将这些点嵌入到一个低维的空间中,使得新的空间中点对之间的距离和原始空间中的距离尽可能接近.
    基本思想:
    d ′ 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} zizj=distij,distij=Dij

推导

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 B=ZTZRm×m,bij=ziTzj
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} distij2=zi2+zj22ziTzj=bii+bjj2bij
假定 Z Z Z已经标准化(中心为0), ∑ i = 1 m z i = 0 \sum_{i=1}^mz_i=0 i=1mzi=0,用 D D D表示 B 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} bij=21(distij2biibjj)=21(distij2m1(j=1mdistij2tr(B))m1(i=1mdistij2tr(B)))=21(distij2m1j=1mdistij2m1i=1mdistij2+m2tr(B))=21(distij2m1j=1mdistij2m1i=1mdistij2+m21i=1mj=1mdistij2)=21(distij2disti2distj2+dist2)
数据降维(二)多维缩放MDS_第1张图片
数据降维(二)多维缩放MDS_第2张图片

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

MDS算法过程

输入:距离矩阵 D ∈ R m × m D\in R^{m\times m} DRm×m,低维空间维度 d ′ 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 disti2,distj2,dist2
  • 计算 B = ( b i j ) B = (b_{ij}) B=(bij)
  • B B B做特征值分解
  • Σ ~ \tilde{\Sigma} Σ~是包含 d ′ d' d最大特征值的对角矩阵, V ~ \tilde{V} V~是特征向量组成的矩阵.

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

你可能感兴趣的:(机器学习)