使用matlab进行降维

clc;
for i=1:168
    X(i,1:20)=totalPDSdat(i,5:24);
    
    labels(i,1)=0;
end

for i=169:386
    X(i,1:20)=totalNPdata(i-168,5:24);
    labels(i,1)=1;
end

item=10;  %迭代次数
sigma=1; %高斯函数方差

filename = ['-sigma-' num2str(sigma) '--' num2str(item) '.gif']; %必须预先建立gif文件  
 
% 估计本质维数,即最终降到的维数
no_dims = round(intrinsic_dim(X, 'MLE'));
disp(['MLE estimate of intrinsic dimensionality: ' num2str(no_dims)]);


for i = 1:item 
    [mappedX, mapping] = compute_mapping(X, 'Laplacian', no_dims,12,i);
    tname  = ['-sigma-' num2str(sigma) 'Result of Laplacian Eigenmaps'];  
    figure(i),
    scatter3(mappedX(:,1), mappedX(:,2), mappedX(:,3),5, labels(mapping.conn_comp),'filled');
    if isequal(labels(mapping.conn_comp),labels)
           sprintf('%s','sucess')
    else sprintf('%s','error')
   end

    title(tname);
    sigma=sigma+1;
    
    % 自动保存为gif图像  
    frame = getframe(i);  
    im = frame2im(frame);  
    [I,map] = rgb2ind(im,256);  
    if i==1  
        imwrite(I,map,filename,'gif','Loopcount',inf, 'DelayTime',0.8);  
    else  
        imwrite(I,map,filename,'gif','WriteMode','append','DelayTime',0.8);  
    end  
    
end

% Isomap降维
[mappedX, mapping] = compute_mapping(X, 'Isomap', no_dims);
if isequal(labels(mapping.conn_comp),labels)
        sprintf('%s','sucess')
else sprintf('%s','error')
end

figure
scatter3(mappedX(:,1), mappedX(:,2), mappedX(:,3),5, labels(mapping.conn_comp),'filled')
title('Result of Isomap')
drawnow


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值