「机器学习算法」多维缩放(MDS)

      • 简介
      • 算法原理及推导
      • 参考

简介

   多维缩放(Mutiple Dimensional Scaling)是一种经典的降维方法,可以缓解在高维情形下出现的数据样本稀疏和距离计算困难等问题,即“维数灾难”.

算法原理及推导

    假定 m 个样本在原始空间的距离矩阵为 DRm×m ,其第 i 行和第 j 列的元素 distij 为样本 xi xj 的距离。我们的目标是获得样本在 d 维空间的表示 ZRd×m dd ,且任意两个样本在 d 维空间中的欧式距离等于原始空间中的距离,即 ||zizj||=distij .
    令 B=ZTZRm×m ,其中 B 为降维后样本的内积矩阵, bij=zTizj ,则有

dist2ij=||zizj||2=||zi||2+||zj||2+2zTizj=bii+bjj2bij,


bij=12(bii+bjjdist2ij).

下面要用 distij 来表示 bij .
    为方便计算,首先对数据进行中心化,即令 mi=1zi=0 ,即
i=1mzik=0  (k=1,...,d).


i=1mbij=i=1mzTizj=i=1mk=1dzikzjk=k=1d(i=1mzik)zjk=0,

同理也有 mj=1bij=0 .则我们可以得到
i=1mdistij=i=1m(bii+bjj2bij)=tr(B)+mbjj2i=1mbij=tr(B)+mbjj,

j=1mdistij=j=1m(bii+bjj2bij)=mbii+tr(B)2i=1mbij=tr(B)+mbii,

i=1mj=1mdistij=i=1mj=1m(bii+bjj2bij)=i=1m(tr(B)+mbii)=2m tr(B),

其中 tr(B) 为矩阵 B 的迹,定义为 tr(B)=di=1bii .则可得到:
tr(B)=12mi=1mj=1mdist2ij.

接着我们记:
dist2i=1mj=1mdist2ij,

dist2j=1mi=1mdist2ij,

dist2=1m2i=1mj=1mdist2ij.

故可进一步得到
tr(B)=m2dist2.

故得到
bii=1m(mdist2im2dist2),

bjj=1m(mdist2jm2dist2).

对于 bij ,代入上式后得到
bij=12(dist2i+dist2jdist2dist2ij),

到此可以求得降维后矩阵 B 的各元素.
    接着对矩阵 B 做特征值分解,即
B=VΛVT

事实上, D 是一个对称实矩阵,此时得到的 B 刚好会有 d 个非0的特征值.其中 Λ=diag(λ1,λ2,,λd) 为特征值构成的对角矩阵.假定其中有 d 个非零特征值,它们构成对角矩阵 Λ=diag(λ1,λ2,,λd) ,令 V 表示相应的特征向量矩阵,则 Z 可表达为
Z=Λ12VTRd×m

    如果想还原原始样本矩阵,就选择 d 个特征值和对应的特征向量;
   如果想要达到降维目的,就取 d(d<d) 个最大特征值和相应的特征向量.

参考

周志华《机器学习》清华大学出版社

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