【Matlab】数据降维⼯具箱drtoolbox
秘密花园小说
【Matlab】数据降维⼯具箱drtoolbox
drttoolbox : Matlab Toolbox for Dimensionality Reduction是Laurens van der Maaten数据降维的⼯具箱。
⾥⾯囊括了⼏乎所有的数据降维算法:带雨的网名
- Principal Component Analysis ('PCA')
风险管控
- Linear Discriminant Analysis ('LDA')
- Independent Component Analysis ('ICA')
- Multidimensional scaling ('MDS')
- Isomap ('Isomap')
梦见和家人吵架
- Landmark Isomap ('LandmarkIsomap')
- Locally Linear Embedding ('LLE')
- Locally Linear Coordination ('LLC')
- 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')
- Neighborhood Prerving Embedding ('NPE')
- Linearity Prerving Projection ('LPP')
马太受难曲
- Stochastic Proximity Embedding ('SPE')
-
Linear Local Tangent Space Alignment ('LLTSA')
绍兴晚报
- Simple PCA ('SPCA')
- Conformal Eigenmaps ('CCA', implemented as an extension of LLE)
- Maximum Variance Unfolding ('MVU', implemented as an extension of LLE) - Fast Maximum Variance Unfolding
('FastMVU')
- Autoencoders using RBM pretraining ('AutoEncoder')
- Autoencoders using evolutionary optimization ('AutoEncoderEA')
在此写下我在使⽤中遇到的⼀点点⼩问题。
⾸先安装⼯具箱,⼀般都把⼯具箱发到Matlab默认放置⼯具箱的⽬
录 matlabroot\toolbox\下⾯,拷贝过去之后,记得修改matlabroot\toolbox\local 下的pathdef.m⽂件,要在⾥⾯添加上新的⼯具箱的路径:重庆就业
[plain]view plaincopy
1.matlabroot,'\toolbox\drtoolbox;', ...
2.matlabroot,'\toolbox\drtoolbox\techniques;', ...
注意要把⼦⽂件夹techniques也添加进⼊。
之后在Matlab⼯作环境中,只需要运⾏compute_mapping命令即可使⽤⼯具箱中的函数,如:
[plain]view plaincopy
1.mappedX = compute_mapping(X, 'PDA', 1);
具体参加说明⽂档。
在使⽤‘Isomap’算法时,会遇到错误如下:
Invalid MEX-file C:\Program
Files\MATLAB\R2010b\toolbox\drtoolbox\techniques\dijkstra.dll 找不到指定模块
发现相应路径中,dijkstra.dll的⽂件是在的,于是以为是环境变量或者Progam Files 空格的问题,尝试修改均⽆效。
后来仔细阅读了源⽂件的注释才发现是编译版本问题。dijkstra函数是⽤C++实现的,需要⽤matlab的mex编译器编译成dll调⽤。虽然⼯具箱中已经有相应编译的dijkstra.dll,但不同版本的Matlab调⽤会遇到问题,需要重新编译。
在windows命令⾏cmd中,⽤cd命令更改路径到⼯具箱路径下,运⾏命令:[plain]view plaincopy
< -O dijkstra.cpp怎么做饺子
编译出现错误:
1) Cannot open include file 'iostream.h' : No such file or directory
修改dijkstra.cpp中include为
2)‘cout’ : undeclared identifier ‘cin’ : undeclared identifier
在dijsktra.cpp中加⼊⼀⾏using namespace std;
编译成功之后,在techniques⽂件夹下出现w32 的⽂件,即为新编译的dll。我们可以修改之前的为dijkstra.dll.old,重命名w32为dijkstra.dll。
在matlab环境中运⾏isomap的程序:
成功!