【MDS】Python实现



2017年11月25日    Author:Guofei

文章归类: 0x31_降维    文章编号: 325

版权声明:本文作者是郭飞。转载随意,但需要标明原文链接,并通知本人
原文链接:https://www.guofei.site/2017/11/25/mds.html


多维尺度分析(Multidimension Scaling, MDS)

  • 基于连续变量: Metric MDS, MMDS
  • 基于分类变量: Nonmetric MDS, NMDS

多维尺度分析是已知样本点的距离矩阵,计算出每个样本点的坐标的算法。

原理

样本点有r个,
已知的距离矩阵为$D=[d_{ij}]$
要求出的坐标矩阵为$M=[m_1,m_2,…m_r]^T$

目标函数(又叫做应力函数或压力函数)$S(M,a,b)=\dfrac{\sqrt{\sum_{i,j=1}^r[\tilde d_{ij}- (a+bd_{ij})]^2}}{\sum_{i,j=1}^r \tilde d_{ij}^2}$
其中$\tilde d= \mid\mid m_i -m_j \mid\mid $

接下来是求最优化$\arg \min\limits_{M,a,b} S(M,a,b)$

算法是反复迭代以下过程:

  1. 固定M,求最优a, b
  2. 固定a, b,求最优M

Python实现

参考资料sklearn官网

```


您的支持将鼓励我继续创作!