📄 compute_mapping.m
字号:
mapping.name = 'Laplacian'; case {'HLLE', 'HessianLLE'} % Compute Hessian LLE mapping if isempty(varargin), mappedA = hlle(A, no_dims, 12, eig_impl); else mappedA = hlle(A, no_dims, varargin{1}, eig_impl); end mapping.name = 'HLLE'; case 'LLE' % Compute LLE mapping if isempty(varargin), mappedA = lle(A, no_dims, 12, eig_impl); else mappedA = 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 'FastMVU' % Compute MVU mapping if isempty(varargin), mappedA = fastmvu(A, no_dims, 12, eig_impl); else mappedA = fastmvu(A, no_dims, varargin{1}, eig_impl); end mapping.name = 'MVU'; case {'Conformal', 'ConformalEig', 'ConformalEigen', 'ConformalEigenmaps', 'CCA', 'MVU'} % Perform initial LLE (to higher dimensionality) disp('Running normal LLE...') if isempty(varargin), [mappedA, mapping] = lle(A, 4 * no_dims + 1, 12, eig_impl); else [mappedA, mapping] = lle(A, 4 * no_dims + 1, 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); else mappedA = diffusion_maps(A, no_dims, varargin{1}); 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, eig_impl); else [mappedA, mapping] = lpp(A, no_dims, varargin{1}, 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 {'AutoEncoder', 'Autoencoder', 'AutoencoderRBM', 'AutoEncoderRBM'} % Train autoencoder to map data [mappedA, mapping] = autoencoder(A, no_dims); 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'; 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 AA.data = mappedA; mappedA = AA; end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -