UMAP算法是Leland McInnes、John Healy和James Melville的发明。

The UMAP algorithm is the invention of Leland McInnes, John Healy, and James Melville.

原始参考论文下载地址:https://arxiv.org/pdf/1802.03426.pdf

See their original paper for a long-form description (https://arxiv.org/pdf/1802.03426.pdf).

原始算法的Python实现:

https://umap-learn.readthedocs.io/en/latest/index.html

Also see the documentation for the original Python implementation (https://umap-learn.readthedocs.io/en/latest/index.html).

给定一组高维数据,run_umap.m生成数据的低维表示,用于数据可视化和探索研究。

Given a set of high-dimensional data, run_umap.m produces a lower-dimensional representation of the data for purposes of data visualization and exploration.

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

This MATLAB implementation follows a very similar structure to the Python implementation, and many of the function descriptions are nearly identical.

以下是MATLAB实现中的一些主要差异:

1)所有最近邻搜索都是通过内置的MATLAB函数knnsearch.m执行的。最初的Python实现使用随机投影树和最近邻下降来近似数据点的最近邻。函数knnsearch.m要么使用穷尽的方法,要么使用k-d树,这两种方法对于高维数据都很慢。因此,对于较大的高维数据集,这种实现速度较慢。

Here are some major differences in this MATLAB implementation:

1) All nearest-neighbour searches are performed through the built-in MATLAB function knnsearch.m. The original Python implementation uses random projection trees and nearest-neighbour descent to approximate nearest neighbours of data points. The function knnsearch.m either uses an exhaustive approach or k-d trees, both of which are slow for high-dimensional data. As such, this implementation is slower in the case of large, high-dimensional data sets.

2)MATLAB函数eigs.m不像Python包Scipy中的函数“eigsh”那么快。对于大型数据集,我们使用一种称为概率分块的算法对数据进行分块,从而初始化低维转换。如果用户下载并安装了Andrew Knyazev提供的lobpcg.m函数,可以用来为中型数据集找到精确的特征向量。

2) The MATLAB function eigs.m does not appear to be as fast as the function "eigsh" in the Python package Scipy. For large data sets, we initialize a low-dimensional transform by binning the data using an algorithm known as probability binning. If the user downloads and installs the function lobpcg.m, made available here (https://www.mathworks.com/matlabcentral/fileexchange/48-locally-optimal-block-preconditioned-conjugate-gradient) by Andrew Knyazev, this can be used to find exact eigenvectors for medium-sized data sets.

3)在大多数情况下,我们调用Java代码来执行随机梯度下降。然而,如果数据被减少到2以外的维度,那么随机梯度下降会在MATLAB中本地执行,这会慢得多。

3) In most cases, we call Java code to perform stochastic gradient descent. However, if the data is being reduced to a dimension other than 2, then stochastic gradient descent is performed natively in MATLAB, which tends to be much slower.

总之,该MATLAB UMAP实现比原始的Python实现慢,后者使用了Numba来加速计算。

Overall, this MATLAB UMAP implementation is slower than the the original Python implementation, which uses Numba to accelerate the calculations.

然而,根据目前所做的测试,这种速度似乎是可以接受的。

However, the speed seems acceptable based on tests done so far.

尽管我们还没有在示例中给出,但是该版本应该可以实现监督的维度缩减。

Supervised dimension reduction should be possible with this version of the implementation, though we have not yet included it in the examples.

本代码是设计的初稿,目前还没有得到UMAP原作者的审查。

This implementation is considered a first draft and has not yet been reviewed by the original authors of UMAP.

我们希望在将来继续改进它,从使用监督降维的例子开始。

We hope to make improvements to it in the future, starting with examples of using supervised dimension reduction.

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

Provided by the Herzenberg Lab at Stanford University.

完整源码下载地址:

更多精彩文章请关注微信号:

转载本文请联系原作者获取授权,同时请注明本文来自刘春静科学网博客。

链接地址:http://blog.sciencenet.cn/blog-69686-1187269.html

上一篇:[转载]【信息技术】【2009】基于离散余弦变换和离散小波变换的数字图像压缩

下一篇:[转载]【信息技术】【2010.04】基于凯撒密码算法的混合加密方法实现

umap算法_科学网—[转载]【源码】均匀流形近似与投影(UMAP)算法仿真 - 刘春静的博文...相关推荐

  1. 基于matlab的语音信号,科学网—[转载]【信息技术】【2014.06】【含源码】基于MATLAB的语音信号处理与分析 - 刘春静的博文...

    本文为瑞典耶夫勒大学(作者:Nan Wu)的学士论文,共48页. 语音传递是人类最重要.最有效.最常用的信息交流方式.语言是人类特有的特征,而人声是常用的工具,也是相互传递信息的重要途径.语音具有较大 ...

  2. umap算法_科学网-[转载]【源码】均匀流形近似与投影(UMAP)算法仿真-刘春静的博文...

    UMAP算法是Leland McInnes.John Healy和James Melville的发明. The UMAP algorithm is the invention of Leland Mc ...

  3. latex文献怎么弄_科学网—Latex 中如何制作参考文献 (以ApJ为例) - 刘禾阳的博文...

    写学术论文时,最后一般要加上参考文献,如果手动输入,不仅繁琐,而且容易出错,那么用BibTex来管理参考文献就显得很有必要. BibTeX是LaTex中管理参考文献的工具,其文件后缀名为.bib.我们 ...

  4. 【 反向传播算法 Back-Propagation 数学推导以及源码详解 深度学习 Pytorch笔记 B站刘二大人(3/10)】

    反向传播算法 Back-Propagation 数学推导以及源码详解 深度学习 Pytorch笔记 B站刘二大人(3/10) 数学推导 BP算法 BP神经网络可以说机器学习的最基础网络.对于普通的简单 ...

  5. php 读取 stl 文件,科学网—[转载]【源码】读取ASCII STL文件的STLReader - 刘春静的博文...

    读取包含顶点和面的ASCII STL文件,并将其构造为矩阵"顶点"."颜色"和"面".之后,使用各小模块在Matlab上建立模型. Read ...

  6. lego ev3 matlab,科学网—[转载]【源码】乐高MINDSTORMS EV3硬件的MATLAB支持包 - 刘春静的博文...

    MATLAB的乐高Mindstorms EV3硬件支持包使您能够使用Matlab通过USB电缆.无线网络或蓝牙与乐高Mindstorms EV3通信. MATLAB® Support Package ...

  7. fpga arm 通讯_科学网-[转载]【电子技术】【2014】FPGA增强的数据处理系统

    大约十年前,功耗和散热问题迫使半导体行业从顺序计算模式转向并行计算模式.然而,在多核CPU和GPGPU等通用并行设备中实现并行性往往很困难.此外,在暗硅前景中,不久的将来,单个程序是否可以在数千个CP ...

  8. 材料学转计算机科学,科学网-[转载]【计算机科学】【2018.12】基于深度学习技术的材料识别-刘春静的博文...

    本文为泰国亚洲理工学院(作者:Nampally Tejasri)的硕士论文,共79页. 近几年来,计算机视觉系统一直关注对环境中各种材料的分类和识别,并将其作为一种重要的视觉竞争手段.利用人工神经网络 ...

  9. python的安装包下载_科学网—[转载]python常用的安装包下载 - 林清莹的博文

    Python常用的安装包下载 1.首先应该下载dlib安装包(例如:dlib-19.8.1-cp36-cp36m-win_amd64.whl) 可以通过此网址进行下载对应的dlib包   https: ...

最新文章

  1. 取消大小周的第一个周末,我吃了顿烤串
  2. 【Python进阶】带你使用Matplotlib进行可视化
  3. 通俗易懂的泰勒展开微积分推导过程
  4. 摆脱困境:从计划作业中调用安全方法
  5. mysql 查询视图是否存在_sql server判断数据库、表、列、视图是否存在
  6. java比对文本文件_Java编程实现比对两个文本文件并标记相同与不同之处的方法...
  7. mysql replace 效率,MySQL replace实用场景 MySQL实现replace函数的几种实用场景
  8. CSS 内边距 和尺寸(收藏)
  9. H5页面内实现分享给微信好友功能
  10. 力扣——算法入门计划第十四天
  11. 《谁动了我的奶酪》读后感 他人感悟
  12. css加密数据 图片解析破解
  13. 我的2018:微信朋友圈的24个瞬间
  14. 06-08 无人机怎么拍摄VR全境图?
  15. CometOJ国庆欢乐赛 C两排房子 二分 D1 二分贪心 E贪心特判
  16. 盘点我用过的导出Excel的方法
  17. 《离散数学》期末练习题
  18. 【论文】优秀的论文记录
  19. ♥二:TypeScript---变量声明
  20. 现代密码学的一些原则(入门密码学必读)

热门文章

  1. Linux系统大约多大,谁来说说linux系统一般多大
  2. openscad螺栓数据生成
  3. Outlook邮箱无法登录
  4. FOFA网络空间搜索引擎
  5. Linux基础 第三节 第一课
  6. android 联想云盘,附文:联想云盘安装_联想 小新Air 12 LTE版_笔记本评测-中关村在线...
  7. python@regex正则表达式
  8. 用计算机弹音乐之声,弹响第一个音符
  9. 能玩java游戏oppo按键手机_游戏手机排行榜 | OPPO Reno果然不负期待
  10. 转载:汶川大地震中业余无线电应急通讯发挥作用