图片缩略图

一致流形逼近与投影(UMAP)

version 2.2 (1.42 MB) by 斯蒂芬·米
一种流形学习与降维算法。

2.4 k下载

更新2021年04月04

查看许可协议

给定一组高维数据,run_umap。M生成数据的低维表示,用于数据可视化和探索。请参阅文件run_umap顶部的注释。M表示文档和许多如何使用此代码的示例。

UMAP算法是Leland McInnes、John Healy和James Melville的发明。请参阅他们的原始论文的长篇描述(https://arxiv.org/pdf/1802.03426.pdf).还请参阅原始Python实现的文档(https://umap-learn.readthedocs.io/en/latest/index.html).

这个MATLAB实现遵循与Python实现非常相似的结构,许多函数描述几乎相同。

以下是这个MATLAB实现中的一些主要区别:
1) MATLAB函数eigs。m似乎没有Python包Scipy中的“eigsh”函数快。对于大数据集,我们通过使用一种称为概率分类的算法对数据进行分类来初始化低维变换。如果用户下载并安装了函数lobpcg。M,可在此下载(//www.tatmou.com/matlabcentral/fileexchange/48-locally-optimal-block-preconditioned-conjugate-gradient),这可以用来为中等大小的数据集找到精确的特征向量。我们还提供了下载稍微修改过的lobpcg版本的选项。M,它有等价的结果。

2)我们在UMAP的低维输出中内置了检测聚类的可选能力。我们调用的集群方法可以是DBM(见https://www.hindawi.com/journals/abi/2009/686759/)用于2D缩减或DBSCAN(内置于MATLAB R2019a及以后版本)用于任何尺寸缩减。这将产生代码示例中解释的集群ID输出和可视化。

3)我们还内置了工具来量化和可视化数据组之间的差异。数据组可以由UMAP缩减上的集群定义(如上所述),也可以由UMAP用于监督缩减或监督模板缩减的分类标签定义。我们使用一个变化量化度量来检测质量和距离的相似性(描述在https://www.ncbi.nlm.nih.gov/pmc/articles/PMC5818510/),以及当同一数据的组是不同分类时测量重叠的评分(见https://en.wikipedia.org/wiki/F-score).为了可视化数据组,我们提供了一个树形图(描述为QF树)https://www.nature.com/articles/s42003-019-0467-6)和分类表,显示每个数据组的相似性,重叠,假阳性%和假阴性%。在2.2版中,我们添加了“UMAP维度资源管理器”(UDE)。UDE是一个可排序的表,它显示了数据组在每个输入维度中的未简化数据的特征。这些特征包括Kullback-Leibler divergence (KLD);分布为密度条(使用MATLAB的喷射色图着色);中位数,平均值,SD和MAD。UDE支金宝app持用MATLAB ROI工具(感兴趣区域)在UMAP输出图上绘制数据组。

总的来说,这个MATLAB UMAP实现趋向于比当前的Python实现(版本0.5.1的UMAP -learn)更快。使用c++ MEX实现,所有UMAP缩减都变得更快。由于文件交换的要求,我们只提供了MEX模块的c++源代码。用户必须单独下载或构建. mex二进制文件(在调用“run_umap”时提供下载或构建文件的选项)。如示例13到15所示,您可以通过将'python'参数设置为true来测试您自己在计算机上的实现之间的速度差异。

此外,受监督模板的用户可要求提供主管匹配、资历树和资历不同的减岗服务。run_umap的函数。M通过新的第四个输出参数:extras返回这些服务的结果。额外的属性记录在umap/UMAP_extra_results.m文件中。

可选的工具箱的依赖关系:
-生物信息学工具箱需要更改'qf_tree'参数。
曲线拟合工具箱需要改变“min_dist”参数。

这个实现还在进行中。Leland McInnes仔细研究了它,他认为它是“对原始Python代码相当忠实的直接翻译”。我们希望在未来继续改进它。

由斯坦福大学赫森伯格实验室提供。

我们感谢所有的人和任何帮助我们找到bug的人。我们的首要任务是确定我们的概念是否适合使用UMAP监督模板的流式细胞术研究出版物。

引用作为

Connor Meehan, Jonathan Ebrahimian, Wayne Moore和Stephen Meehan(2021)。统一流形近似和投影(UMAP) (//www.tatmou.com/matlabcentral/fileexchange/71902), MATLAB中央文件交换。

MATLAB版本兼容性
创建R2021a
兼容R2017a到R2021a
平台的兼容性
窗户 macOS Linux
确认

启发:CytoMAP

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!

umap

跑龙套