主要思路

MDS(Multi-dimensional Scaling)是一种经典的降维方法。本文主要参考这个PPT。
给定样本集X=[x1,⋯,xn]∈RD×nX=[x_1,\cdots,x_n]\in \mathbb{R}^{D\times n}X=[x1​,⋯,xn​]∈RD×n,其中nnn表示样本数量,DDD表示维度,每一列表示一个样本,以及一种满足如下条件的度量方式dabd_{ab}dab​:

  • dab≥0d_{ab}\ge 0dab​≥0
  • dab=0,ifa=bd_{ab}=0,\ if\ a=bdab​=0, if a=b
  • dab=d(b,a)d_{ab}=d(b,a)dab​=d(b,a)
  • dac≤dab+dbcd_{ac}\le d_{ab}+d_{bc}dac​≤dab​+dbc​

一般假设ddd取欧氏距离。MDS希望寻找到降完维后的结果Y=[y1,⋯,yn]∈Rd×nY=[y_1,\cdots,y_n]\in \mathbb{R}^{d\times n}Y=[y1​,⋯,yn​]∈Rd×n尽可能满足:
dij=∥yi−yj∥2d_{ij}=\| y_i-y_j \|_2 dij​=∥yi​−yj​∥2​

而dijd_{ij}dij​由xi,xjx_i,x_jxi​,xj​的欧氏距离定义。

经典MDS的解

假设现在已经找到了YYY使得其中恰好能满足:
dij=∥yi−yj∥2d_{ij}=\|y_i-y_j\|_2 dij​=∥yi​−yj​∥2​

然而对于任意c∈Rd×1c\in \mathbb{R}^{d\times 1}c∈Rd×1都有:
∥(yi+c)−(yj+c)∥2=dij=∥yi−yj∥2=dij\|(y_i+c)-(y_j+c) \|_2=d_{ij}=\|y_i-y_j\|_2=d_{ij} ∥(yi​+c)−(yj​+c)∥2​=dij​=∥yi​−yj​∥2​=dij​

也就是说只要有一组解满足条件,通过平移就一定能得到无限多组解满足条件,因此MDS加了一个限制来避免这种情况:
∑i=1nYij=0,forallj\sum_{i=1}^n Y_{ij}=0,for\ all\ j i=1∑n​Yij​=0,for all j

即限制YYY的行之和为0,这就是要让求出的YYY是经过中心化的。

在求解时,MDS构造矩阵B=YTYB=Y^TYB=YTY,这样优化目标就变成了:
dij2=∥yi−yj∥22=yiTyi+yjTyj−2yiTyj=bii+bjj−2bijd_{ij}^2=\|y_i-y_j\|_2^2=y_i^Ty_i+y_j^Ty_j-2y_i^Ty_j=b_{ii}+b_{jj}-2b_{ij} dij2​=∥yi​−yj​∥22​=yiT​yi​+yjT​yj​−2yiT​yj​=bii​+bjj​−2bij​

其中bijb_{ij}bij​是BBB的第(i,j)(i,j)(i,j)个元素。现在希望把bijb_{ij}bij​用dijd_{ij}dij​表示出来。

有如下的等式关系是成立的:
∑i=1ndij2=∑i=1nyiTyi+nyjTyj−2(∑i=1nyiT)yj=tr(B)+nbjj∑j=1ndij2=∑i=1nyjTyj+nyiTyi−2yi(∑i=1nyj)=tr(B)+nbii∑i=1n∑j=1ndij2=∑i=1n∑j=1n(yiTyi+yjTyj−2yiTyj)=2ntr(B)\sum_{i=1}^n d_{ij}^2=\sum_{i=1}^ny_i^Ty_i+ny_j^Ty_j-2(\sum_{i=1}^ny_i^T)y_j=tr(B)+nb_{jj} \\ \sum_{j=1}^n d_{ij}^2 = \sum_{i=1}^ny_j^Ty_j+ny_i^Ty_i-2y_i(\sum_{i=1}^ny_j)=tr(B)+nb_{ii} \\ \sum_{i=1}^n\sum_{j=1}^nd_{ij}^2=\sum_{i=1}^n\sum_{j=1}^n(y_i^Ty_i+y_j^Ty_j-2y_i^Ty_j)=2ntr(B) i=1∑n​dij2​=i=1∑n​yiT​yi​+nyjT​yj​−2(i=1∑n​yiT​)yj​=tr(B)+nbjj​j=1∑n​dij2​=i=1∑n​yjT​yj​+nyiT​yi​−2yi​(i=1∑n​yj​)=tr(B)+nbii​i=1∑n​j=1∑n​dij2​=i=1∑n​j=1∑n​(yiT​yi​+yjT​yj​−2yiT​yj​)=2ntr(B)

这主要是因为YYY是中心化的,因此各向量之和∑i=1nyiT,∑j=1nyjT\sum_{i=1}^n y_i^T,\sum_{j=1}^n y_j^T∑i=1n​yiT​,∑j=1n​yjT​为全0向量。进一步有:
tr(B)=12n∑i=1n∑j=1ndij2bii=1n∑j=1ndij2−12n2∑i=1n∑j=1ndij2bjj=1n∑i=1ndij2−12n2∑i=1n∑j=1ndij2tr(B)=\frac{1}{2n}\sum_{i=1}^n\sum_{j=1}^nd_{ij}^2 \\ b_{ii} =\frac{1}{n} \sum_{j=1}^n d_{ij}^2 - \frac{1}{2n^2}\sum_{i=1}^n\sum_{j=1}^nd_{ij}^2 \\ b_{jj} = \frac{1}{n} \sum_{i=1}^n d_{ij}^2-\frac{1}{2n^2}\sum_{i=1}^n\sum_{j=1}^nd_{ij}^2 tr(B)=2n1​i=1∑n​j=1∑n​dij2​bii​=n1​j=1∑n​dij2​−2n21​i=1∑n​j=1∑n​dij2​bjj​=n1​i=1∑n​dij2​−2n21​i=1∑n​j=1∑n​dij2​

因此:
bij=−12(dij2−bii−bjj)=−12(dij2−1n∑j=1ndij2−1n∑i=1ndij2+1n2∑i=1n∑j=1ndij2)b_{ij}=-\frac{1}{2}(d_{ij}^2-b_{ii}-b_{jj})=-\frac{1}{2}(d_{ij}^2-\frac{1}{n} \sum_{j=1}^n d_{ij}^2 -\frac{1}{n} \sum_{i=1}^n d_{ij}^2+\frac{1}{n^2}\sum_{i=1}^n\sum_{j=1}^nd_{ij}^2) bij​=−21​(dij2​−bii​−bjj​)=−21​(dij2​−n1​j=1∑n​dij2​−n1​i=1∑n​dij2​+n21​i=1∑n​j=1∑n​dij2​)

这样就能求出BBB矩阵了。而B=YTYB=Y^TYB=YTY,对BBB做特征值分解得:
B=VΛVT=VΛ1/2Λ1/2VT=YTYB=VΛV^T=VΛ^{1/2}Λ^{1/2}V^T=Y^TY B=VΛVT=VΛ1/2Λ1/2VT=YTY

其中Λ=diag(λ1,⋯,λn)Λ=diag(\lambda_1,\cdots,\lambda_n)Λ=diag(λ1​,⋯,λn​)为特征值从大到小排列构成的对角矩阵,VVV是特征向量矩阵。因此可知:
Y=Λ1/2VTY=Λ^{1/2}V^T Y=Λ1/2VT

降维的时候,就选择前ddd大的特征值及其对应的特征向量构成ΛΛΛ和VVV即可。

MDS总结

BBB是n×nn\times nn×n的矩阵,特征分解B=VΛVTB=VΛV^TB=VΛVT,最多也就nnn个特征值,因此V×Rn×nV\times \mathbb{R}^{n\times n}V×Rn×n,也就是说做到这里的时候VVV就是nnn维的,是满足bij=dijb_{ij}=d_{ij}bij​=dij​的,是把DDD维的XXX变成了nnn维的BBB。
如果要寻求维度低于nnn的ddd维的YYY的话,“取前ddd大的特征值及其对应的特征向量”这种选法相当于在对BBB做PCA,因为对称矩阵BBB的特征分解和SVD分解是等价的,其奇异值是特征值的平方。
所以MDS真的有点奇怪,为什么要先求BBB再做PCA呢,难道原矩阵XXX不就是维持样本间距离的最好最原始的表达么,为什么不直接做PCA。

MDS的推导与其他降维方法不同,是直接推出来的,没有迭代或乘子法。

ISOMAP等度量映射

ISOMAP构建DDD的方法与MDS不同,后面的步骤都一样。它会先寻找每个样本的kkk近邻,样本与其近邻之间的距离用欧氏距离度量,与非近邻之间的距离为无穷大,然后用最短路径算法(Dijkstra或者Floyd)来构建DDD矩阵。然后再做MDS。这种度量方法叫做“测地线距离”,相比于MDS,可以更好的控制数据信息的流失,能够在低维空间中更加全面的将高维空间的数据表现出来。

降维系列之 MDS多维缩放 与 ISOMAP 等度量映射相关推荐

  1. 降维——多维缩放MDS

    转载自 http://blog.csdn.net/victoriaw/article/details/78500894 多维缩放(Multidimensional Scaling, MDS)是一组对象 ...

  2. {降维} ISOMAP等距特征映射 MDS多维标度法

    首发:https://zhuanlan.zhihu.com/p/60599491 介绍两种降维方法 镇楼_MDS: http://www.utdallas.edu/~herve/Abdi-MDS200 ...

  3. sklearn与机器学习系列专题之降维(五)一文弄懂Isomap特征筛选降维

    目录 1.Isomap算法简介 2.Isomap算法原理 3.Isomap算法优缺点 4.python实战Isomap 5.下篇预告 1.Isomap算法简介 等度量映射(Isometric Feat ...

  4. MDS(多维尺度变换)

    MDS(多维尺度变换) 多维尺度变换算法解决的问题是:当n个对象之间的相似性给定,确定这些对象在低维空间中的表示,并使其尽可能与原先的相似性大致匹配.高维空间中每一个点代表一个对象,因此点与点之间的距 ...

  5. 【MDS多维尺度分析】

    multidimensional scaling(MDS)多维尺度分析 MDS其实就是一种降维方法,MDS解决的问题是:当n个对象中各对象之间的相似性(或距离)给定时,确定这些对象在低维空间中的表示, ...

  6. Java实现mds降维_ISOMAP和MDS降维

    转载自https://blog.csdn.net/victoriaw/article/details/78497316 核心:测地线距离(dijstra最短路径获得).MDS降维 Isomap(Iso ...

  7. python算法应用(四)——多维缩放

    简介 利用多维缩放的技术,可以为数据集找到一种二维表达形式,算法根据每对数据项之间的差距情况,尝试绘制出一副图来,图中各数据项之间的距离远近,对应他们彼此间的差异程度,采用皮尔逊相关度来对各数据项进行 ...

  8. 【Linux 运维系列】Ubuntu 运维总结

    [Linux 运维系列]Ubuntu 运维总结 [1]Ubuntu 更新源 各版本源地址查询 阿里源 : https://developer.aliyun.com/mirror/ubuntu 清华源 ...

  9. 两种降维方法的总结——LLE(局部线性嵌入),ISOMAP(等度量映射)

    简介 流形学习是一类借鉴了拓扑流形概念的降维方法.流形是在局部与欧式空间同胚的空间,换言之,它在局部具有欧式空间的性质,能用欧式距离来进行距离计算.若低维流形嵌入到高维空间中,则数据样本在高维空间的分 ...

  10. 【多视角立体视觉系列】 几何变换的层次——投影变换,仿射变换,度量变换和欧几里德变换

    [多视角立体视觉系列] 几何变换的层次--投影变换,仿射变换,度量变换和欧几里德变换 20200226 FesianXu 文章目录 前言 你不可不知的几何元素 直线 点 面 线的相交 圆锥线和二次曲锥 ...

最新文章

  1. JavaScript知识总结
  2. python中浅拷贝和深拷贝分析
  3. python画图如何调整图例位置_Python-如何将图例排除在情节之外
  4. 2019年关于VM和Kubernetes的思考 | 技术头条
  5. Java Enum学习总结
  6. union的限制, 临时表大小的优化
  7. (转)10条名言,让你少走弯路
  8. Jquery监听value的变化
  9. 终于有一次,排名没有进步
  10. c 汇编语言小程序100例,汇编语言100例
  11. H5模板代码一键生成器
  12. 解决MyEclipse中导入项目的javascript文件中文乱码
  13. CISP 考试教材《第 4 章 知识域:业务连续性》知识整理
  14. 计算机声音控制程序,怎么管理电脑各程序的音量-单独调节各个程序音量的方法 - 河东软件园...
  15. SLAM ---- 误差测评 ATE、RPE、APE,与EVO
  16. 建立TCP连接的时候,syn包什么情况下会被对端rst?
  17. 解决:win10下修改mac地址的方法
  18. 计量经济学及Stata应用 陈强 第十章工具变量法习题10.6
  19. 一种基于物理信息极限学习机的PDE求解方法
  20. 编译原理学习笔记(七)~LR(0)分析

热门文章

  1. vs2010 “SetScrollSizes”: 找不到标识符
  2. VMware View 5.0 策略列表
  3. 14.1宽屏Intel集显调分辨率:无解
  4. linux文件传输阻塞了,Linux 中的read系统调用到底是阻塞还是非阻
  5. 基于SpringCloud Alibaba实现的论坛
  6. 惠新宸:我也曾经是“不适合”编程的人(图灵访谈)
  7. 随机样例生成器(外观优化)
  8. mysql spool csv报错_Oracle使用spool快速导出超大表
  9. webstormjs文件全部报错_springboot启动报错org.yaml.snakeyaml.error.YAMLException...
  10. 牛客网 ACM模式单行输入输出规范