多维尺度变换(Multidimensional scaling)

多维尺度变换是一种可视化样本相似度的方法,也是一种降维方法。

它有好几种类型,根据样本是否可以计量,可分为度量型多维尺度变换(metric MDS)和非度量型多维尺度变换(non-metric MDS)。在可计量的多维尺度变换中,依据度量的距离标准是否是欧氏距离,分为经典多维尺度变换(classical MDS)和非经典多维尺度变换(non-classical MDS)。

具体公式推导就不说了,我也并不擅长,只是想记录一下自己的应用,这里使用的是Matlab中的经典多维尺度变换。

看到该方法可以通过城市间的距离(相似度矩阵)得出城市间的相对位置,于是乎“玩心大起”,用Google地图测量了一下我国的六个城市:哈尔滨、西安、昆明、深圳、新疆及拉萨的直线距离(公里),以矩阵的形式输入,最后得出坐标图。

Matlab代码:

clc;
clear all;
close all;

cities = {'哈尔滨', '昆明', '西安', '乌鲁木齐', '深圳','拉萨'};
d=[ 0	3147	1957	3049	2821	3553;
3147	0	1210	2518	1169	1273;
1957	1210	0	2110	1397	1742;
3049	2518	2110	0	3379	1610;
2821	1169	1397	3379	0	2413;
3553	1273	1742	1610	2413	0
];
[Y,eigvals] = cmdscale(d);
plot(Y(:,1),Y(:,2),'or')
title('我国六大城市相对位置')
text(Y(:,1)+50,Y(:,2)+10,cities)
xlabel('公里')
ylabel('公里')

在这里插入图片描述
五个城市间地图上的位置(下图上显示的不是实际公里数,我为了能直观表示,在几个城市间来回拉的线):
在这里插入图片描述

参考内容:
1、Multidimensional scaling - Wikipedia
https://en.wikipedia.org/wiki/Multidimensional_scaling
2、MDS(多维尺度法)的原理及MATLAB实现 - Miracle.Zhao的博客 - CSDN博客
https://blog.csdn.net/zhaomengszu/article/details/59560015
3、多维尺度变换(multidimensional scaling, MDS) - mingjinliu的博客 - CSDN博客
https://blog.csdn.net/mingjinliu/article/details/70194660

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值