多维缩放MDS
多维缩放(Multiple Dimensional Scaling,MDS)
问题形式化:
- 给定空间中任意两个点的距离(pairwise distances ), 点的精确坐标和维度是未知的.
- 我们希望将这些点嵌入到一个低维的空间中,使得新的空间中点对之间的距离和原始空间中的距离尽可能接近.
基本思想:
d′空间的欧式距离等于原始空间的欧式距离
∣∣zi−zj∣∣=distij,distij=Dij
推导
令
B=ZTZ∈Rm×m,bij=ziTzj
distij2=∣∣zi∣∣2+∣∣zj∣∣2−2ziTzj=bii+bjj−2bij
假定
Z已经标准化(中心为0),
∑i=1mzi=0,用
D表示
B.
bij=−21(distij2−bii−bjj)=−21(distij2−m1(j=1∑mdistij2−tr(B))−m1(i=1∑mdistij2−tr(B)))=−21(distij2−m1j=1∑mdistij2−m1i=1∑mdistij2+m2tr(B))=−21(distij2−m1j=1∑mdistij2−m1i=1∑mdistij2+m21i=1∑mj=1∑mdistij2)=−21(distij2−disti⋅2−distj⋅2+dist⋅⋅2)
对
B做特征值分解
B=VΣVT
Σ=diag(λ1,λ2…λd)
Σ∗=diga(λ1,λ2…λd∗),λ1>λ2>⋯λd∗>0
V∗是对应的特征向量组成的矩阵,那么
Z=Σ∗1/2V∗T∈Rd∗×m
实际上,我们使用
d′≪d特征值矩阵
Σ~=diag(λ1,λ2…λd′)
Z=Σ~1/2V~T∈Rd′×m
MDS算法过程
输入:距离矩阵
D∈Rm×m,低维空间维度
d′
算法过程:
-
disti⋅2,dist⋅j2,dist⋅⋅2
- 计算
B=(bij)
- 对
B做特征值分解
-
Σ~是包含
d′最大特征值的对角矩阵,
V~是特征向量组成的矩阵.
输出:
Σ~1/2V~T∈Rd′×m