降维工具箱drtool
工具箱下载:http://leelab.googlecode.com/svn/trunk/apps/drtoolbox/
————————————————————————————————————————————
参考:https://chunqiu.blog.ustc.edu.cn/?p=413
这个工具箱的 主页如下,现在的最新版本是2013.3.21更新,版本v0.8.1b
http://homepage.tudelft.nl/19j49/Matlab_Toolbox_for_Dimensionality_Reduction.html
这里有两个这个工具箱的简单介绍:
【Matlab】数据降维工具箱drtoolbox
http://blog.csdn.net/xiaowei_cqu/article/details/7515077
【Dimensionality Reduction】数据降维方法分类
http://blog.csdn.net/xiaowei_cqu/article/details/7522368
安装
下面稍详细介绍一些这个工具箱。下载压缩包,解压后里面有一个 Readme.txt文档,里面写有工具箱的相关介绍,这里做简单翻译吧。
安装
把解压后的文件夹放到$MATLAB_DIR/toolbox下,当然也可以放到任意自己想放的路径,然后打开matlab设置路径 Set Path,选择’Add with subfolders…',选中drtoolbox,保存即可。
设置完成后, 需要对函数做编译,虽然一些压缩包自带一些编译好的mex文件,但可能并不适合你的平台,所以最好在自己电脑上完成编译,方法是让matlab进入drtoolbox文件,然后运行 mexall命令。
特性
当前版本的工具箱包括 34种数据降维技术,如下, 这些可以通过compute_mapping函数或GUI调用:
- 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’) — 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’)
- Locality 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’)
- Deep autoencoders (‘Autoencoder’)
- Neighborhood Components Analysis (‘NCA’)
- Maximally Collapsing Metric Learning (‘MCML’)
- Large Margin Nearest Neighhbor metric learning (‘LMNN’)
这些算法在【Dimensionality Reduction】数据降维方法分类 http://blog.csdn.net/xiaowei_cqu/article/details/7522368中有个小结,这里引用如下:
线性/非线性
线性降维是指通过降维所得到的低维数据能保持高维数据点之间的线性关系。 线性降维方法主要包括PCA、LDA、LPP(LPP其实是Laplacian Eigenmaps的线性表示);非线性降维一类是基于核的,如KPCA,此处暂不讨论,另一类就是通常所说的 流形学习:从高维采样数据中恢复出低维流形结构(假设数据是均匀采样于一个高维欧式空间中的低维流形),即找到高维空间中的低维流形,并求出相应的嵌入映射。 非线性流形学习方法有:Isomap、LLE、Laplacian Eigenmaps、LTSA、MVU。
整体来说,线性方法计算块,复杂度低,但对复杂的数据降维效果较差。
监督/非监督
监督式和非监督式学习的主要区别在于数据样本是否存在类别信息。 非监督降维方法的目标是在降维时使得信息的损失最小,如PCA、LPP、Isomap、LLE、Laplacian Eigenmaps、LTSA、MVU;监督式降维方法的目标是最大化类别间的辨别信,如LDA。事实上,对于非监督式降维算法,都有相应的监督式或半监督式方法的研究。
全局/局部
局部方法仅考虑样品集合的局部信息,即数据点与临近点之间的关系。 局部方法以LLE为代表,还包括Laplacian Eigenmaps、LPP、LTSA。
全局方法不仅考虑样本几何的局部信息,和考虑样本集合的全局信息,及样本点与非临近点之间的关系。 全局算法有PCA、LDA、Isomap、MVU。
由于局部方法并不考虑数据流形上相距较远的样本之间的关系,因此,局部方法无法达到“使在数据流形上相距较远的样本的特征也相距较远”的目的。
以下是对一组三维数据(900样本)降到一维,应用八种算法的时间对比:
另外,工具箱还提供6种技术做 本质维度估计intrinsic dimensionality estimation如下,就是估计降到多少维较好。这些技术可以利用 intrinsic_dim函数调用。
- Eigenvalue-based estimation (‘EigValue’)
- Maximum Likelihood Estim