MDS算法
我们日常观测或者收集到的数据来看,很多数据特征都是用不到的,而学习任务可能仅仅局限于某个低维分布(某些低维特征),这就是高维空间中的一个低维“嵌入”。数据降维,是解决数据“维数灾难”的有效手段,即通过某种数学变换将原始高维属性空间转变为一个低维的“子空间”。MDS算法(Multiple Dimensional Scaling,简称MDS)是一种行之有效的低维嵌入算法,即在保障原始空间与低维空间样本之间距离一致的前提下,将高维数据进行降维。
原理推导
假设有m个样本,其样本空间如下:
T={x1,x2,⋯,xm}xi∈Rd
令D表示样本间的距离,其中D∈Rm×m,其中第i行j列的元素distij为样本xi到样本xj之间的距离。很显然,矩阵D是一个对称矩阵。MDS算法的目的是在不改变样本间距离的前提下,实现数据降维,故我们最终要得到样本在d′(新样本空间)中的表示Z∈Rd′×m,d′≤d,且任意两个样本在d′维空间中的欧氏距离等于原始空间中的距离,即∣∣zi−zj∣∣=distij
令B=ZTZ∈Rm×m,其中B为降维后样本的内积矩阵,其中bij=ziTzj,则有
distij2=∣∣zi∣∣2+∣∣zj∣∣2−2ziTzj=bii+bjj−2bij…(1)
为了便于讨论,令降维后的样本Z被中心化,即∑i=1mzi=0,显然,矩阵B的行与列之和均为0,即∑i=1mbij=∑j=1mbij=0,可得如下一些变换:
i=1∑mdistij2=tr(B)+mbjj…(2)
j=1∑mdistij2=tr(B)+mbii…(3)
i=1∑mj=1∑mdistij2=2m tr(B)…(4)
其中tr(⋅)表示矩阵的迹(trace),tr(B)=∑i=1m∣∣zi∣∣2。令
disti⋅2=m1j=1∑mdistij2…(5)
dist⋅j2=m1i=1∑mdistij2…(6)
dist⋅⋅2=m21i=1∑mj=1∑mdistij2…(7)
结合以上(1)~(7)可得:
bij=−21(distij2−disti⋅2−dist⋅j2+dist⋅⋅2)…(8)
由此即可通过降维前后保持不变的距离矩阵D求取内积矩阵B,又由于矩阵B是对阵矩阵,对其进行特征分解,即
B=VΛVT
其中,Λ=diag(λ1,λ2,⋯,λd)为特征值构成的对角矩阵,λ1≥λ2≥⋯≥λd,V为对应的特征向量矩阵。假定其中有d∗个非零特征值,它们构成对角矩阵Lambda∗=diag(λ1,λ2,⋯,λd∗),令V∗表示相应的特征向量矩阵,则Z可表达为:
Z=Λ∗21V∗T∈Rd∗×m
在现实应用中为了有效降维,往往仅需降维后的距离与原始空间中的距离尽可能接近,而不必言格相等。此时可取d′<<d个最大特征值构成对角矩阵Λ^=diag(λ1,λ2,⋯,λd′),令V^表示相应的特征向量矩阵,则Z可表达为:
Z=Λ^21V^T ∈Rd′×m
故推导完毕。
参考文献