数据降维工具箱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 Preserving Embedding ('NPE')
?- Linearity Preserving 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')
這里附上下載地址:http://download.csdn.net/detail/xiaowei_cqu/4258778
在此寫下我在使用中遇到的一點點小問題。
首先安裝工具箱,一般都把工具箱發到Matlab默認放置工具箱的目錄?matlabroot\toolbox\下面,拷貝過去之后,記得修改matlabroot\toolbox\local 下的pathdef.m文件,要在里面添加上新的工具箱的路徑:
[plain]?view plaincopy
之后在Matlab工作環境中,只需要運行compute_mapping命令即可使用工具箱中的函數,如:
[plain]?view plaincopy
具體參加說明文檔。
在使用‘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
1) ? Cannot open include file 'iostream.h' : No such file or directory
? ? ? 修改dijkstra.cpp中 include<iosteam.h>為<iosteam>
2) ‘cout’ : undeclared identifier ? ? ? ‘cin’ : undeclared identifier?
? ? ? 在dijsktra.cpp中加入一行 using namespace std;
編譯成功之后,在techniques文件夾下出現dijkstra.mexw32?的文件,即為新編譯的dll。我們可以修改之前的為dijkstra.dll.old,重命名dijkstra.mexw32為dijkstra.dll。
在matlab環境中運行isomap的程序:
成功!
(轉載請注明作者和出處:http://blog.csdn.net/xiaowei_cqu?未經允許請勿用于商業用途)
總結
以上是生活随笔為你收集整理的数据降维工具箱drtoolbox的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 有关内存释放的一些问题
- 下一篇: 数据降维方法分类