Matlab Toolbox for Dimensionality Reduction (v0.7.1b)
=====================================================
Information
-------------------------
Author: Laurens van der Maaten
Affiliation: University of California, San Diego / Delft University of Technology
Contact: [email protected]
Release date: June 25, 2010
Version: 0.7.1b
Installation
-------------------------
Copy the drtoolbox/ folder into the $MATLAB_DIR/toolbox directory (where $MATLAB_DIR indicates your Matlab installation directory). Start Matlab and select 'Set path...' from the File menu. Click the 'Add with subfolders...' button, select the folder $MATLAB_DIR/toolbox/drtoolbox in the file dialog, and press Open. Subsequently, press the Save button in order to save your changes to the Matlab search path. The toolbox is now installed.
Some of the functions in the toolbox use MEX-files. Precompiled versions of these MEX-files are distributed with this release, but the compiled version for your platform might be missing. In order to compile all MEX-files, type cd([matlabroot '/toolbox/drtoolbox']) in your Matlab prompt, and execute the function MEXALL.
Features
-------------------------
This Matlab toolbox implements 32 techniques for dimensionality reduction. These techniques are all available through the COMPUTE_MAPPING function or trhough the GUI. The following techniques are available:
- Principal Component Analysis ('PCA')
- Linear Discriminant Analysis ('LDA')
- Multidimensional scaling ('MDS')
- Probabilistic PCA ('ProbPCA')
- Factor analysis ('FactorAnalysis')
- Sammon mapping ('Sammon')
- Isomap ('Isomap')
- Landmark Isomap ('LandmarkIsomap')
- Locally Linear Embedding ('LLE')
- Laplacian Eigenmaps ('Laplacian')
- Hessian LLE ('HessianLLE')
- Local Tangent Space Alignment ('LTSA')
- Diffusion maps ('DiffusionMaps')
- Kernel PCA ('KernelPCA')
- Generalized Discriminant Analysis ('KernelLDA')
- Stochastic Neighbor Embedding ('SNE')
- Symmetric Stochastic Neighbor Embedding ('SymSNE')
- t-Distributed Stochastic Neighbor Embedding ('tSNE')
- Neighborhood Preserving Embedding ('NPE')
- Linearity Preserving Projection ('LPP')
- Stochastic Proximity Embedding ('SPE')
- Linear Local Tangent Space Alignment ('LLTSA')
- Conformal Eigenmaps ('CCA', implemented as an extension of LLE)
- Maximum Variance Unfolding ('MVU', implemented as an extension of LLE)
- Landmark Maximum Variance Unfolding ('LandmarkMVU')
- Fast Maximum Variance Unfolding ('FastMVU')
- Locally Linear Coordination ('LLC')
- Manifold charting ('ManifoldChart')
- Coordinated Factor Analysis ('CFA')
- Gaussian Process Latent Variable Model ('GPLVM')
- Autoencoders using stack-of-RBMs pretraining ('AutoEncoderRBM')
- Autoencoders using evolutionary optimization ('AutoEncoderEA')
Furthermore, the toolbox contains 6 techniques for intrinsic dimensionality estimation. These techniques are available through the function INTRINSIC_DIM. The following techniques are available:
- Eigenvalue-based estimation ('EigValue')
- Maximum Likelihood Estimator ('MLE')
- Estimator based on correlation dimension ('CorrDim')
- Estimator based on nearest neighbor evaluation ('NearNb')
- Estimator based on packing numbers ('PackingNumbers')
- Estimator based on geodesic minimum spanning tree ('GMST')
In addition to these techniques, the toolbox contains functions for prewhitening of data (the function PREWHITEN), exact and estimate out-of-sample extension (the functions OUT_OF_SAMPLE and OUT_OF_SAMPLE_EST), and a function that generates toy datasets (the function GENERATE_DATA).
The graphical user interface of the toolbox is accessible through the DRGUI function.
Usage
-------------------------
Basically, you only need one function: mappedX = compute_mapping(X, technique, no_dims);
Try executing the following code:
[X, labels] = generate_data('helix', 2000);
figure, scatter3(X(:,1), X(:,2), X(:,3), 5, labels); title('Original dataset'), drawnow
no_dims = round(intrinsic_dim(X, 'MLE'));
disp(['MLE estimate of intrinsic dimensionality: ' num2str(no_dims)]);
mappedX = compute_mapping(X, 'Laplacian', no_dims, 7);
figure, scatter(mappedX(:,1), mappedX(:,2), 5, labels); title('Result of dimensionality reduction'), drawnow
It will create a helix dataset, estimate the intrinsic dimensionality of the dataset, run Laplacian Eigenmaps on the dataset, and plot the results. All functions in the toolbox can work both on data matrices as on PRTools datasets (http://prtools.org). For more information on the options for dimensionality reduction, type HELP COMPUTE_MAPPING in your Matlab prompt. Information on the intrinsic dimensionality estimators can be obtained by typing the HELP INTRINSIC_DIM.
Other functions that are useful are the GENERATE_DATA function and the OUT_OF_SAMPLE and OUT_OF_SAMPLE_EST functions. The GENERATE_DATA function provides you with a number of artificial datasets to test the techniques. The OUT_OF_SAMPLE function allows for out-of-sample extension for the techniques PCA, LDA, LPP, NPE, LLTSA, Kernel PCA, and autoencoders. The OUT_OF_SAMPLE_EST function allows you to perform an out-of-sample extension using an estimation technique, that is generally applicable.
Many of the available functions are also available through the GUI, which can be executed by running the function DRGUI.
Pitfalls
-------------------------
When you run certain code, you might receive an error that a certain file is missing. This is because in some parts of the code, MEX-functions are used. I provide a number of precompiled versions of these MEX-functions in the toolbox. However, the MEX-file for your platform might be missing. To fix this, type in your Matlab:
mexall
Now you have compiled versions of the MEX-files as well. This fix also solves slow execution of the shortest path computations in Isomap.
If you encounter an error considering CSDP while running the FastMVU-algorithm, the binary of CSDP for your platform is missing. If so, please obtain a binary distribution of CSDP from https://projects.coin-or.org/Csdp/ and place it in the drtoolbox/techniques directory. Make sure it has the right name for your platform (csdp.exe for Windows, csdpmac for Mac OS X (PowerPC), csdpmaci for Mac OS X (Intel), and csdplinux for Linux).
Many methods for dimensionality reduction perform spectral analyses of sparse matrices. You might think that eigenanalysis is a well-studied problem that can easily be solved. However, eigenanalysis of large matrices turns out to be tedious. The toolbox allows you to use two different methods for eigenanalysis:
- The original Matlab functions (based on Arnoldi methods)
- The JDQR functions (based on Jacobi-Davidson methods)
For problems up to 10,000 datapoints, we recommend using the 'Matlab' setting. For larger problems, switching to 'JDQR' is often worth trying.
Papers
-------------------------
For more information on the implemented techniques and for a theoretical and empirical comparison, please have a look at the following papers:
- L.J.P. van der Maaten, E.O. Postma, and H.J. van den Herik. Dimensionality Reduction: A Comparative Review. Tilburg University Technical Report, TiCC-TR 2009-005, 2009.
Version history
-------------------------
Version 0.7.1b:
- Small bugfixes.
Version 0.7b:
- Many small bugfixes and speed improvements.
- Added out-of-sample extension for manifold charting.
- Added first version of graphical user interface for the toolbox. The GUI was developed by Maxim Vedenev with the help of Susanth Vemulapalli and Maarten Huybrecht. I made some changes in the initial version of the GUI code.
- Added implementation of Gaussian Process Latent Variable Model (GPLVM).
- Removed Simple PCA as probabilistic PCA is more appropriate.
Version 0.6b:
- Resolved bug in LLE that was introduced with v0.6b.
- Added implementation of t-SNE.
- Resolved small bug in data generation function.
- Improved RBM implementation in au
没有合适的资源?快使用搜索试试~ 我知道了~
资源详情
资源评论
资源推荐
收起资源包目录
研究生数学建模大赛常用Matlab代码 (6535个子文件)
GPSR_Basic.asv 21KB
figures_1_2_3.asv 8KB
chapter8.2.asv 3KB
EZR.asv 2KB
Untitled2.asv 1KB
GP.asv 958B
max_coherent.asv 343B
About.bmp 930KB
tfdomain.bmp 224KB
Coastguard_cif_000003.bmp 100KB
Coastguard_cif_SI_3_0.70_000004.bmp 100KB
Coastguard_cif_000005.bmp 100KB
Coastguard_cif_SI_3_0.70_000001.bmp 100KB
Coastguard_cif_SI_3_0.70_000002.bmp 100KB
Coastguard_cif_000004.bmp 100KB
Coastguard_cif_000006.bmp 100KB
Coastguard_cif_000001.bmp 100KB
Coastguard_cif_000002.bmp 100KB
Coastguard_cif_000007.bmp 100KB
Coastguard_cif_000000.bmp 100KB
Coastguard_cif_SI_3_0.70_000005.bmp 100KB
lena256.bmp 65KB
0_201(1).bmp 2KB
0_156.bmp 2KB
0_77.bmp 2KB
0_5(1).bmp 2KB
0_155.bmp 2KB
0_240(1).bmp 2KB
0_289.bmp 2KB
0_325.bmp 2KB
0_331(1).bmp 2KB
0_328.bmp 2KB
0_153.bmp 2KB
0_444.bmp 2KB
0_286(1).bmp 2KB
0_183(1).bmp 2KB
0_225.bmp 2KB
0_215(1).bmp 2KB
0_426.bmp 2KB
0_79.bmp 2KB
0_104.bmp 2KB
0_138(1).bmp 2KB
0_419.bmp 2KB
0_15(1).bmp 2KB
0_205(1).bmp 2KB
0_308.bmp 2KB
0_92.bmp 2KB
0_277.bmp 2KB
0_195.bmp 2KB
0_382.bmp 2KB
0_415.bmp 2KB
0_355(1).bmp 2KB
0_323(1).bmp 2KB
0_442.bmp 2KB
0_273.bmp 2KB
0_194(1).bmp 2KB
0_122.bmp 2KB
0_149.bmp 2KB
0_120.bmp 2KB
0_264.bmp 2KB
0_217.bmp 2KB
0_316(1).bmp 2KB
0_135(1).bmp 2KB
0_18.bmp 2KB
0_10.bmp 2KB
0_236.bmp 2KB
0_305.bmp 2KB
0_58.bmp 2KB
0_118(1).bmp 2KB
0_334(1).bmp 2KB
0_177.bmp 2KB
0_495.bmp 2KB
0_12(1).bmp 2KB
0_35.bmp 2KB
0_295.bmp 2KB
0_116.bmp 2KB
0_130(1).bmp 2KB
0_52.bmp 2KB
0_343.bmp 2KB
0_312(1).bmp 2KB
0_357.bmp 2KB
0_334.bmp 2KB
0_173.bmp 2KB
0_213(1).bmp 2KB
0_248(1).bmp 2KB
0_105(1).bmp 2KB
0_458.bmp 2KB
0_321(1).bmp 2KB
0_58(1).bmp 2KB
0_360.bmp 2KB
0_231(1).bmp 2KB
0_307.bmp 2KB
0_190.bmp 2KB
0_1.bmp 2KB
0_201.bmp 2KB
0_43(1).bmp 2KB
0_278(1).bmp 2KB
0_136.bmp 2KB
0_478.bmp 2KB
0_219.bmp 2KB
共 6535 条
- 1
- 2
- 3
- 4
- 5
- 6
- 66
abuot_w23
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0