数据降维之多维尺度分析MDS

多维尺度分析法MDS

参考链接:https://www.bilibili.com/video/BV11U4y1A71u

定义

PCA:从本身数据的分布角度去降维。只考虑了数据本身的分布特性,数据点之间的相对位置关系没有考虑。

MDS:多维尺度分析,基本原理是根据数据集的相似程度,计算各数据点在K维空间中的位置,要求将高维数据(d*m)转换为低维数据(d‘*m)后,样本点的相对位置关系不变。

但是上式没有唯一解:

  1. 对点做平移,点之间的距离不变
  2. 对点旋转,翻转,点之间的距离不变

但是直接求Z比较困难,转而求B=Z(转置)Z,Z(d’*m),B(m*m)

所以可以通过B去求Z,那么我们只需要求到B即可。

要使得求和(||Zi-Zj||-dij)的平方最小即

得到四个式子:

解方程可得:

MDS一般步骤

  1. 利用给定数据计算距离矩阵(不相似矩阵)D
  2. 计算降维后矢量z的互相关矩阵B
  3. 对B进行特征值分解,选取较大的若干特征值与特征矢量获取Z

案例

学科

C=[1 0.439 0.41 0.288 0.329 0.248;

0.439 1 0.351 0.354 0.32 0.329;

0.41 0.351 1 0.164 0.19 0.181;

0.288 0.354 0.164 1 0.595 0.47;

0.329 0.32 0.19 0.595 1 0.464;

0.248 0.329 0.181 0.47 0.464 1];

Language={'盖尔语','英语','历史','算术','代数','几何'};

n=size(C,1);

H=eye(n,n)-ones(n,1)*ones(1,n)/n;

B=H'*C*H;

[eigv,lamda]=eig(B);

MDS=-eigv(:,[1,5])*sqrt(lamda([1,5],[1,5]));

scatter(-MDS(:,1),MDS(:,2))

hold on;

for k=1:n

    text(-MDS(k,1),MDS(k,2),Language{k});

end

可视化结果:

中国城市距离

d=xlsread('国内城市间距离里程表.xlsx','D3:BA52');

[d1,City]=xlsread('国内城市间距离里程表.xlsx','D2:BA2');

A=-d.^2/2;

n=size(A,1);

H=eye(n,n)-ones(n,1)*ones(1,n)/n;

B=H'*A*H;

[eigv,lamda]=eig(B);

MDS=-eigv(:,1:2)*sqrt(lamda(1:2,1:2));

scatter(MDS(:,2),MDS(:,1));

hold on;

for k=1:n

    text(MDS(k,2),MDS(k,1),City{k});

end

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值