⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tp4.m

📁 流形学习算法库
💻 M
字号:
% Course 4 - Graph computationpath(path, 'toolbox_dimreduc');path(path, 'toolbox_dimreduc/toolbox/');path(path, 'toolbox_dimreduc/data/');path(path, 'toolbox_graph');test_dataset= 1;test_graph = 1;test_dimensionreduc = 1;test_imagelib = 1;rep = 'images/tp4/raw/';if ~exist(rep)    mkdir(rep);end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% display of the datasets%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%if test_dataset    name = 'scurve';name = 'swissroll';n = 3000; % number of points[X,col] = load_points_set( name, n );clf;plot_scattered(X,col);axis equal; axis off;saveas(gcf, [rep name '-display.jpg'], 'jpg');    end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% display of the datasets%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%if test_graphname = 'swissroll';name = 'scurve';n = 800; % number of pointsoptions.use_nntools = 0;options.nn_nbr = 7; % number of nearest neighbor[X,col] = load_points_set( name, n );% compute NN graph[D,A] = compute_nn_graph(X,options);% display the graphclf;plot_graph(A,X, col);axis tight; axis off;saveas(gcf, [rep name '-graph.jpg'], 'jpg');% compute some geodesic distance[tmp,start_point] = min( abs(col(:)-mean(col(:)))); % starting pointW = D; D(D==Inf) = 0; % weight on the graph[d,S] = perform_dijkstra(D, start_point);clf;hold on;plot_scattered(X, d);h = plot3(X(1,start_point), X(2,start_point), X(3,start_point), 'k.');set(h, 'MarkerSize', 25);axis tight; axis off;hold off;view(3)saveas(gcf, [rep name '-dist.jpg'], 'jpg');    end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% dimension reduction%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%if test_dimensionreduc    name = 'scurve';name = 'swissroll';    n = 800; % number of pointsoptions.use_nntools = 0;[X,col] = load_points_set( name, n );% dimension reduction using isomapoptions.nn_nbr = 7;xy = isomap(X,2, options);clf;plot_scattered(xy,col);axis equal; axis off;saveas(gcf, [rep name '-dred-isomap.jpg'], 'jpg');% dimension reduction using PCA[Y,xy] = pca(X,2);clf;plot_scattered(xy,col);axis equal; axis off;saveas(gcf, [rep name '-dred-pca.jpg'], 'jpg');end%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% image library%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%if test_imagelib    % test for dimension reduction on images datasetsname = 'binaryalphadigs';name = 'umist_cropped';name = 'edges';name = 'digits';name = 'olivettifaces';name = 'disks';name = 'frey_rawface';if strcmp(name, 'frey_rawface')    options.nclass = 1:5;    options.nbr = 2000;else    options.nbr = 1000;    end% Read databaseM = load_images_dataset(name, options);% subsample at randomn = 1000;sel = randperm(size(M,3));M = M(:,:,sel(1:n));if strcmp(name, 'frey_rawface')    M = permute(M,[2 1 3]);end%% turn it into a set of pointsa = size(M,1);b = size(M,2);n = size(M,3);X = reshape(M, a*b, n);%% display the data setp = [20 20];p = min( p, ceil([sqrt(n) sqrt(n)]) );s=0;m = [size(M,1) size(M,2)];p = min( p, round([2000 2000]./m) );A = zeros(p.*m);for kx=1:p(1)    for ky=1:p(2)        s = s+1;        if s<n            selx = (kx-1)*m(1)+1:kx*m(1);            sely = (ky-1)*m(2)+1:ky*m(2);            A(selx,sely) = M(:,:,s);        end    endendclf;hold on;q = size(A,1);r = size(A,2);imagesc( [0,r-1]+0.5,[0,q-1]+0.5, A );colormap gray(256);axis tight; axis square; axis off;axis xy;for x=0:b:q    line([x x], [0 r]);endfor x=0:a:q    line([0 r], [x x]);endhold off;axis ijsaveas(gcf, [rep name '-dataset.jpg'], 'jpg');%% perform isomapoptions.nn_nbr = 7;options.use_nntools = 0;xy = isomap(X,2, options);k = 30;clf;plot_flattened_dataset(xy,M,k);saveas(gcf, [rep name '-isomap.jpg'], 'jpg');%% perform pca[tmp,xy] = pca(X,2);clf;plot_flattened_dataset(xy,M,k);saveas(gcf, [rep name '-pca.jpg'], 'jpg');end    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -