文章根据 https://blog.csdn.net/Dark_Scope/article/details/53229427 而来。
MDS降维
- 降维算法中,像PCA主成分分析的提供点坐标进行降维的方法,还有一种是提供点之间距离就可完成降维的方法,那就是MDS。这种方法经常被用于流行学习中,例如经典的ISOMAP。
- 假设D为距离矩阵,X为降维后的样本矩阵,
B=XXT,想要只通过距离矩阵还原数据X是不太可能的,因为只给了距离信息之后本身就丢掉了很多东西,但是是可以对数据进行降维的。而MDS的主要流程则是通过D得到B,再由B得到X,即D->B->X,D是距离矩阵,怎么得到B呢?他们看起来好像没有啥关系啊。-----因为MDS的目标是降维后数据之间的距离与原数据之间距离保持一致。即
∣∣xi−xj∣∣=distij,这样他们之间就有关联了。而
B=XXT,那为什么不能通过B还原原始数据呢?这是因为:
B=XXT(n∗n)
=(XM)(XM)T
=XMMTX
=XXT【1】
其中M是一组正交基,正交基与其转置相乘为单位阵。
可以看出M对X做正交变换并不会影响B的值,而正交变换刚好就是对数据做旋转、翻转操作的。 所以如果我们想通过B反算出X,肯定是没法得到真正的X,而是它的任意一种正交变换后的结果。
- D->B->X
通过平移所有点不会对距离矩阵造成影响,因此可以通过将数据平移到原点,即对数据做零均值化处理(也叫中心化),这样可以得到矩阵元素之和相加为0的属性,即:
i=1∑nxik=0【2】
因为
B=XXT,那么对于B中的元素行和列和都为0,有:
j=1∑nbij=j=1∑nk=1∑qxikxjk=k=1∑qxik(j=1∑nxjk)=0【3】
类似:
i=1∑nbij=j=1∑nk=1∑qxikxjk
i=1∑nbij=k=1∑qxik(j=1∑nxjk)=0【4】
这两个性质对于该算法来说十分重要,后面由D->B也与这两个性质有较大关系。
设B的迹为T:
i=1∑ndij2=i=1∑n(bii+bjj−2bij)=T+nbjj+0【5】
bjj=−n1(T−i=1∑ndij2)【6】
j=1∑ndij2=j=1∑n(bii+bjj−2bij)=T+nbii+0【7】
bii=−n1(T−j=1∑ndij2)【8】
i=1∑nj=1∑ndij2=i=1∑n(T+nbii)=nT+ni=1∑nbii=nT+nT=2nT【9】
因为
B=XXT:
bij=k=1∑qxikxjk【10】
而距离矩阵D中的元素:
dij2=(xi−xj)2
dij2=k=1∑q(xik−xjk)2
dij2=k=1∑q(xik2+xjk2−2xikxjk)
dij2=bii+bjj−2bij【11】
所以:
bij=21(bii+bjj−dij2)【12】
由【6、8、9】, 可得:
bij=21(dij2−n1i=1∑ndij2−n1j=1∑ndij2−n21i=1∑nj=1∑ndij2)【12】
这样,就可以通过D得到B了,然后通过B进行PCA就可以得到经过某种正交变换的X了。
这就是MDS,通过距离矩阵获得降维后的数据矩阵。
ISOMAP算法
算法流程:
- 使用最短路径算法获取数据的距离矩阵
- 将距离矩阵通过MDS降维
参考
[1] https://blog.csdn.net/Dark_Scope/article/details/53229427
[2] 周志华,《机器学习》