转【Matlab】数据降维工具箱drtoolbox

转自:

http://blog.csdn.net/xiaowei_cqu 

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 plain copy
  1. matlabroot,'\toolbox\drtoolbox;', ...  
  2. matlabroot,'\toolbox\drtoolbox\techniques;', ...  
注意要把子文件夹techniques也添加进入。

之后在Matlab工作环境中,只需要运行compute_mapping命令即可使用工具箱中的函数,如:

[plain]  view plain copy
  1. mappedX = compute_mapping(X, 'PCA', 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 plain copy
  1. mex -O dijkstra.cpp  
编译出现错误:

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的程序:


成功!


*上面那个下载链接里,doc文件夹有工具箱的说明文档,貌似有童鞋找不到,再附一个单独的文档下载地址吧~

说明文档下载地址:http://download.csdn.net/detail/xiaowei_cqu/4850455

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值