1 目的
已知很多样本点之间的相互距离(以欧式距离为例),但是不知道每个样本点的具体坐标,MDS分析就是要求解出每个样本点的原始坐标,然后保证这些样本点的原始坐标尽量符合这个距离矩阵关系。用一个例子说明一下这个问题,已知中国几大城市之间的距离,但是不知道他们的经纬度,现在要求他们之间的相对位置关系。
北京 | 天津 | 上海 | 重庆 | 呼市 | 乌市 | 拉萨 | 银川 | 南宁 | 哈尔滨 | |
北京 | 0 | 125 | 1239 | 3026 | 480 | 3300 | 3736 | 1192 | 2373 | 1230 |
天津 | 125 | 0 | 1150 | 1954 | 604 | 3330 | 3740 | 1316 | 2389 | 1207 |
上海 | 1239 | 1150 | 0 | 1945 | 1717 | 3929 | 4157 | 2092 | 1892 | 2342 |
重庆 | 3006 | 1954 | 1945 | 0 | 1847 | 3202 | 2457 | 1570 | 993 | 3156 |
呼市 | 480 | 604 | 1717 | 1847 | 0 | 2825 | 3260 | 716 | 2657 | 1710 |
乌市 | 3300 | 3330 | 3929 | 3202 | 2825 | 0 | 2668 | 2111 | 4279 | 4531 |
拉萨 | 3736 | 3740 | 4157 | 2457 | 3260 | 2668 | 0 | 2547 | 3431 | 4967 |
银川 | 1192 | 1316 | 2092 | 1570 | 716 | 2111 | 2547 | 0 | 2673 | 2422 |
南宁 | 2373 | 2389 | 1892 | 993 | 2657 | 4279 | 3431 | 2673 | 0 | 3592 |
哈尔滨 | 1230 | 1207 | 2342 | 3156 | 1710 | 4531 | 4967 | 2422 | 3592 | 0 |
2 步骤:
(1)从距离矩阵D中,求解出B。
(公式1)
其中,B的含义如下式:
(公式2)
X代表每个数据的原始坐标,在本例中,X也就代表这些城市的坐标信息。
公式2与公式1是可以相互推导的。
接下来的分析就跟PCA有点相似了。我们知道在PCA中,也是首先求出原始数据的协方差矩阵,然后再计算协方差矩阵的前n个特征值对应的特征向量,就是原始样本点的几个重要的方向。
(2)计算B的特征值与特征向量,找到前n个值对应的特征向量。用这些特征值特征向量把B对角化
B = F’ A F
其中A是以前n个特征值为对角线元素的对角阵,F是特征向量组成的矩阵。
因此
然后就可以画出来相对位置了。在选择前n个特征值的时候,如果选择1个,那么会得到他们之间的1维关系,如果n = 2,那么会得到他们之间的二维关系。
3 实验结果
不是很准确,还是反应了一些大概的方位。