算法思想
MDS算法思想很简单,一句话就是保持样本在原空间和低维空间的距离不变。
因为距离是样本之间一个很好的分离属性,对于大多数聚类算法来说,距离是将样本分类的重要属性,因此当我们降维后,保持距离不变,那么就相当于保持了样本的相对空间关系不变。
MDS算法
假设mm个样本在原始空间中的距离矩阵为,distijdistij为xixi和xjxj之间的距离,我们的目标就是获得样本在d′d′维空间中的表示Z∈Rd′∗m,d′≤dZ∈Rd′∗m,d′≤d且||zi−zj||2=distij||zi−zj||2=distij,即两个空间中,样本间距离保持不变。
令B=ZZTB=ZZT为降维后的内积矩阵, 则Bij=zizTjBij=zizjT
dist2ij=||zi−zj||2=||zi||2+||zj||2−2zTizj=bii+bjj−2bijdistij2=||zi−zj||2=||zi||2+||zj||2−2ziTzj=bii+bjj−2bij
当我们对ZZ做过中心化,即,则有矩阵B的行和列的和均为0,即:
∑mi=1bij=∑mj=1bij=0∑i=1mbij=∑j=1mbij=0
因此有:
∑mi=1dist2ij=∑mi=1||zi−zj||2=∑mi=1bii+∑mi=1bjj−2∑mi=1bij=tr(B)+mbjj−0∑i=1mdistij2=∑i=1m||zi−zj||2=∑i=1mbii+∑i=1mbjj−2∑i=1mbij=tr(B)+mbjj−0
∑mj=1dist2ij=tr(B)+mbii∑j=1mdistij2=tr(B)+mbii
所以:
∑mi=1∑mj=1dist2ij=∑mi=1tr(B)+m∑mi=1bii=2mtr(B)∑i=1m∑j=1mdistij2=∑i=1mtr(B)+m∑i=1mbii=2mtr(B)
令:
dist2i⋅=1m∑mj=1dist2ijdisti⋅2=1m∑j=1mdistij2
dist2⋅j=1m∑mi=1dist2ijdist⋅j2=1m∑i=1mdistij2
dist2⋅⋅=1m2∑mi=1∑mj=1dist2ijdist⋅⋅2=1m2∑i=1m∑j=1mdistij2
有:
bii=1m(∑mj=1dist2ij−tr(B))bii=1m(∑j=1mdistij2−tr(B))
bjj=1m(∑mi=1dist2ij−tr(B))bjj=1m(∑i=1mdistij2−tr(B))
所以有:
bij=12(bii+bjj−dist2ij)=−12(dist2ij−bii−bjj)=−12(dist2ij−dist2i⋅−dist2⋅j+2mtr(B))bij=12(bii+bjj−distij2)=−12(distij2−bii−bjj)=−12(distij2−disti⋅2−dist⋅j2+2mtr(B))
而:
tr(B)=12m∑mi=1∑mj=1dist2ijtr(B)=12m∑i=1m∑j=1mdistij2
所以有:
bij=−12(dist2ij−dist2i⋅−dist2⋅j+dist2⋅⋅)bij=−12(distij2−disti⋅2−dist⋅j2+dist⋅⋅2)
因此我们可以通过矩阵DD求得矩阵,而B=ZZTB=ZZT,对BB做特征分解,有:
可以得到:
Z=Λ12PTZ=Λ12PT
矩阵ZZ就是样本在低维空间的映射