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

📄 compute_mapping.m

📁 一个很好的Matlab编制的数据降维处理软件
💻 M
📖 第 1 页 / 共 2 页
字号:
            else [mappedA, mapping] = lle(A, no_dims, varargin{1}, eig_impl); end            mapping.name = 'LLE';                    case 'LLC'            % Compute LLC mapping			if isempty(varargin), mappedA = run_llc(A', no_dims, 12, 20, 200, eig_impl);            elseif length(varargin) == 1, mappedA = run_llc(A', no_dims, varargin{1}, 20, 200, eig_impl);            elseif length(varargin) == 2, mappedA = run_llc(A', no_dims, varargin{1}, varargin{2}, 200, eig_impl);            else mappedA = run_llc(A', no_dims, varargin{1}, varargin{2}, varargin{3}, eig_impl); end            mappedA = mappedA';            mapping.name = 'LLC';                                            case {'ManifoldChart', 'ManifoldCharting', 'Charting', 'Chart'}            % Compute mapping using manifold charting            if isempty(varargin), mappedA = charting(A, no_dims, 40, 200, eig_impl);            elseif length(varargin) == 1, mappedA = charting(A, no_dims, varargin{1}, 200, eig_impl);               else mappedA = charting(A, no_dims, varargin{1}, varargin{2}, eig_impl); end            mapping.name = 'ManifoldChart';                    case 'CFA'            % Compute mapping using Coordinated Factor Analysis            if isempty(varargin), mappedA = cfa(A, no_dims, 40, 200);            elseif length(varargin) == 1, mappedA = cfa(A, no_dims, varargin{1}, 200);            else mappedA = cfa(A, no_dims, varargin{1}, varargin{2}); end            mapping.name = 'CFA';                   case 'LTSA'            % Compute LTSA mapping             if isempty(varargin), mappedA = ltsa(A, no_dims, 12, eig_impl);            else mappedA = ltsa(A, no_dims, varargin{1}, eig_impl); end            mapping.name = 'LTSA';                    case 'LLTSA'            % Compute LLTSA mapping             if isempty(varargin), [mappedA, mapping] = lltsa(A, no_dims, 12, eig_impl);            else [mappedA, mapping] = lltsa(A, no_dims, varargin{1}, eig_impl); end            mapping.name = 'LLTSA';                    case {'LMVU', 'LandmarkMVU'}            % Compute Landmark MVU mapping            if isempty(varargin), [mappedA, mapping] = lmvu(A', no_dims, 5);            else [mappedA, mapping] = lmvu(A', no_dims, varargin{1}); end            mappedA = mappedA';            mapping.name = 'LandmarkMVU';                    case 'FastMVU'            % Compute MVU mapping            if isempty(varargin), [mappedA, mapping] = fastmvu(A, no_dims, 12, eig_impl);            elseif length(varargin) == 1, [mappedA, mapping] = fastmvu(A, no_dims, varargin{1}, true, eig_impl);             elseif length(varargin) == 2, [mappedA, mapping] = fastmvu(A, no_dims, varargin{1}, varargin{2}, eig_impl);end            mapping.name = 'FastMVU';                    case {'Conformal', 'ConformalEig', 'ConformalEigen', 'ConformalEigenmaps', 'CCA', 'MVU'}            % Perform initial LLE (to higher dimensionality)            disp('Running normal LLE...')            tmp_dims = min([size(A, 2) 4 * no_dims + 1]);            if isempty(varargin), [mappedA, mapping] = lle(A, tmp_dims, 12, eig_impl);            else [mappedA, mapping] = lle(A, tmp_dims, varargin{1}, eig_impl); end                        % Now perform the MVU / CCA optimalization                        if strcmp(type, 'MVU'),                disp('Running Maximum Variance Unfolding...');                opts.method = 'MVU';            else                disp('Running Conformal Eigenmaps...');                opts.method = 'CCA';            end            disp('CSDP OUTPUT =============================================================================');            mappedA = cca(A', mappedA', mapping.nbhd', opts);            disp('=========================================================================================');            mappedA = mappedA(1:no_dims,:)';                    case {'DM', 'DiffusionMaps'}            % Compute diffusion maps mapping			if isempty(varargin), mappedA = diffusion_maps(A, no_dims, 1, 1);            elseif length(varargin) == 1, mappedA = diffusion_maps(A, no_dims, varargin{1}, 1);            else mappedA = diffusion_maps(A, no_dims, varargin{1}, varargin{2}); end            mapping.name = 'DM';                    case 'SPE'            % Compute SPE mapping            if isempty(varargin), mappedA = spe(A, no_dims, 'Global');            elseif length(varargin) == 1, mappedA = spe(A, no_dims, varargin{1});             elseif length(varargin) == 2, mappedA = spe(A, no_dims, varargin{1}, varargin{2}); end            mapping.name = 'SPE';                    case 'LPP'            % Compute LPP mapping            if isempty(varargin), [mappedA, mapping] = lpp(A, no_dims, 12, 1, eig_impl);            elseif length(varargin) == 1, [mappedA, mapping] = lpp(A, no_dims, varargin{1}, 1, eig_impl);             else [mappedA, mapping] = lpp(A, no_dims, varargin{1}, varargin{2}, eig_impl); end            mapping.name = 'LPP';                    case 'NPE'            % Compute NPE mapping            if isempty(varargin), [mappedA, mapping] = npe(A, no_dims, 12, eig_impl);            else [mappedA, mapping] = npe(A, no_dims, varargin{1}, eig_impl); end            mapping.name = 'NPE';                    case 'SNE'            % Compute SNE mapping			if isempty(varargin), mappedA = sne(A, no_dims);            else mappedA = sne(A, no_dims, varargin{1}); end            mapping.name = 'SNE';        case {'SymSNE', 'SymmetricSNE'}            % Compute Symmetric SNE mapping			if isempty(varargin), mappedA = sym_sne(A, no_dims);            else mappedA = sym_sne(A, no_dims, varargin{1}); end            mapping.name = 'SymSNE';                    case {'AutoEncoder', 'Autoencoder', 'AutoencoderRBM', 'AutoEncoderRBM'}            % Train autoencoder to map data            mapping.min = min(min(A));            mapping.max = max(max(A));            A = A -  mapping.min;            A = A ./ mapping.max;            net_structure = [ceil(size(A, 2) * 1.2) + 5 max([ceil(size(A, 2) / 4) no_dims + 2]) + 3 max([ceil(size(A, 2) / 10) no_dims + 1]) no_dims];            disp(['Network size: ' num2str(net_structure)]);            network = train_deep_network(A, net_structure, 'Autoencoder');            network = network(1:ceil(length(network) / 2));            mappedA = run_through_network(network, A);            mapping.network = network;            mapping.name = 'Autoencoder';                    case {'AutoEncoderEA', 'AutoencoderEA'}            % Train autoencoder to map data            [mappedA, mapping] = autoencoder_ea(A, no_dims);            mapping.name = 'AutoEncoderEA';                    case {'KPCA', 'KernelPCA'}            % Apply kernel PCA with polynomial kernel			if isempty(varargin), [mappedA, mapping] = kernel_pca(A, no_dims);			else [mappedA, mapping] = kernel_pca(A, no_dims, varargin{:}); end            mapping.name = 'KernelPCA';					case {'KLDA', 'KFDA', 'KernelLDA', 'KernelFDA', 'GDA'}			% Apply GDA with Gaussian kernel            if isempty(varargin), mappedA = gda(A(:,2:end), uint8(A(:,1)), no_dims);            else mappedA = gda(A(:,2:end), uint8(A(:,1)), no_dims, varargin{:}); end            mapping.name = 'KernelLDA';                    case {'LDA', 'FDA'}            % Construct labeled dataset            [mappedA, mapping] = lda(A(:,2:end), uint16(A(:,1)), no_dims);            mapping.name = 'LDA';                    case 'MDS'            % Compute distance matrix            mappedA = mds(A, no_dims);            mapping.name = 'MDS';                    case {'PCA', 'KLM'}            % Compute PCA mapping			[mappedA, mapping] = pca(A, no_dims);            mapping.name = 'PCA';                    case {'SPCA', 'SimplePCA'}            % Compute PCA mapping using Hebbian learning approach			[mappedA, mapping] = spca(A, no_dims);            mapping.name = 'SPCA';                    case {'PPCA', 'ProbPCA', 'EMPCA'}            % Compute probabilistic PCA mapping using an EM algorithm			if isempty(varargin), [mappedA, mapping] = em_pca(A, no_dims, 200);            else [mappedA, mapping] = em_pca(A, no_dims, varargin{1}); end            mapping.name = 'PPCA';                    case {'FactorAnalysis', 'FA'}            % Compute factor analysis mapping (using an EM algorithm)            [mappedA, mapping] = fa(A, no_dims);            mapping.name = 'FA';                    otherwise            error('Unknown dimensionality reduction technique.');    end        % JDQR makes empty figure; close it    if strcmp(eig_impl, 'JDQR')        close(gcf);    end        % Handle PRTools dataset    if prtools == 1        if sum(strcmp(type, {'Isomap', 'LandmarkIsomap', 'FastMVU'}))            AA = AA(mapping.conn_comp,:);        end        AA.data = mappedA;        mappedA = AA;    end    

⌨️ 快捷键说明

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