等度量映射ISOMAP matlab代码

本文介绍了ISOMAP(等度量映射)算法,它是多维缩放(MDS)的一种变种,关注全局数据流形结构。ISOMAP通过计算近邻连接图上的最短路径来获取测地距离,避免了欧氏距离的局限性。在提供的MATLAB代码中,展示了ISOMAP的实现过程,包括数据标准化、近邻搜索、最短路径计算和MDS降维。最后,通过主成分热图展示了降维结果。
摘要由CSDN通过智能技术生成

等度量映射ISOMAP

前面的 LLE ,被称作局部模型。因为他们都只关注样本点跟邻居们的关系。现在我们介绍一个全局模型 ISOMAP ( 多维缩放( MDS )的一个变种)。

       利用流形在局部上与欧氏空间同胚这个性质,对每个点基于欧氏距离找出其近邻点,然后就能建立一个近邻连接图,图中近邻点之间存在连接,而非近邻点之间不存在连接,于是,计算两点之间测地线距离的问题就转变为计算近邻连接图上两点之间的最短路径问题.

       在近邻连接图上计算两点间的最短路径,可采用著名的Dikstra算法或Floyd 算法,在得到任意两点的距离之后,就可通过 MDS 方法来获得样本点在低维空间中的坐标.(两种距离算法和MDS在我的文章中有大家可以看看)

Isomap算法描述

• isomap 最主要的优点就是使用“测地距离”,而不是使用原始的欧几里得距离,这样可以更好的控制数据信息的流失,能够在低维空间中更加全面的将高维空间的数据表现出来。

%% 清空变量
clear all
clc
%% 下载数据
load('matrix.mat')
%% 数据标准化
tic
X=matrix';
% 求矩阵维数
L=size(X);
n=L(1);
m=L(2);
%求样本的均值
A=mean(X);
%求样本的标准差
B=std(X,0);
% 样本标定
C=zeros(n,m);
for i =1:m
    for j=1:n
        C(j,i)=(X(j,i)-A(i))/B(i);
    end
end

%% ISOMAP降维
options.dims=6;      % 输出维度
options.nntype = 0;  % 输出类型
options.nn_nbr = 89;  % 定义最近邻数(不能超过90)
[Y,E,F] = isomap(C,options);
% Y 降维后的输出
% E 降维后的特征向量
% F 降维后的特征值矩阵
[G,H]=sort(F(F~=0),'descend');%G是排列好的特征值,H是索引
P=E(:,H);%按索引排序的特征向量

% 计算得分矩阵
T=C*P;
toc
%% 显示降维后的主成分热图
r=212;c=308;
ha = tight_subplot(3,2,[.05 .05],[.03 .03],[.1 .1]);
axes(ha(1));temp1=(reshape(T(:,1),r,c));imagesc(temp1);title('PC1');colorbar;colormap(jet);axis image;
axes(ha(2));temp2=(reshape(T(:,2),r,c));imagesc(temp2);title('PC2');colorbar;colormap(jet);axis image;
axes(ha(3));temp3=(reshape(T(:,3),r,c));imagesc(temp3);title('PC3');colorbar;colormap(jet);axis image;
axes(ha(4));temp4=(reshape(T(:,4),r,c));imagesc(temp4);title('PC4');colorbar;colormap(jet);axis image;
axes(ha(5));temp5=(reshape(T(:,5),r,c));imagesc(temp5);title('PC5');colorbar;colormap(jet);axis image;
axes(ha(6));temp6=(reshape(T(:,6),r,c));imagesc(temp6);title('PC6');colorbar;colormap(jet);axis image;


    





 

aaa

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Matlab科研辅导帮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值