UMAP:均匀流形逼近与投影降维

UMAP:均匀流形逼近与投影降维

均匀流形逼近与投影 (UMAP) 是一种降维技术,它与 t-SNE 类似,可用于可视化,也可用于一般的非线性降维。该算法基于对数据的三个假设:

数据均匀分布在黎曼流形上;

黎曼度量是局部常数(或可以近似为常数);

流形是局部连通的。

基于这些假设,可以使用模糊拓扑结构对流形进行建模。通过寻找数据的低维投影,使其具有最接近的等效模糊拓扑结构来找到嵌入。

相关数学细节可在我们在 ArXiv 上的论文中找到

McInnes, L, Healy, J, UMAP:均匀流形逼近与投影降维, ArXiv e-prints 1802.03426, 2018

您可以在github 上找到该软件。

安装

Conda 安装,通过 conda-forge 团队的杰出工作

conda install -c conda-forge umap-learn

conda-forge 包可用于 linux、OS X 和 Windows 64 位系统。

PyPI 安装,假设您已安装 numba、sklearn 及其所有依赖项(numpy 和 scipy)

pip install umap-learn

用户指南 / 教程

如何使用 UMAP

企鹅数据集

手写数字数据集

UMAP 基本参数

n_neighbors

min_dist

n_components

metric

绘制 UMAP 结果

绘制大型数据集

交互式绘图和悬停工具

使用 Nomic Atlas 进行交互式绘图

绘制连接性

诊断性绘图

UMAP 可复现性

使用 UMAP 转换新数据

逆变换

参数化 (神经网络) 嵌入

定义您自己的网络

保存和加载模型

绘制损失

参数化逆变换 (重建)

自动编码 UMAP

早期停止和 Keras 回调函数

其他重要参数

扩展模型

引用我们的工作

使用参数化 UMAP 转换新数据

使用 UMAP 处理新数据

使用参数化 UMAP 处理新数据

使用地标重新训练参数化 UMAP

稀疏数据上的 UMAP

一个数学示例

一个文本分析示例

用于监督降维和度量学习的 UMAP

Fashion MNIST 上的 UMAP

使用标签分离类别 (监督 UMAP)

使用部分标签 (半监督 UMAP)

使用标签训练并嵌入未标记的测试数据 (使用 UMAP 的度量学习)

在 Galaxy10SDSS 数据集上的监督 UMAP

使用 UMAP 进行聚类

传统聚类

UMAP 增强聚类

使用 UMAP 检测离群点

组合多个 UMAP 模型

MNIST 手写数字示例

钻石数据集示例

使用 DensMAP 更好地保留局部密度

在 Galaxy10SDSS 数据集上的监督 DensMAP

使用互 k-近邻图改进相似类别之间的分离

可视化结果

引用我们的工作

使用 UMAP 进行文档嵌入

使用原始计数

使用 TF-IDF

潜在应用

嵌入到非欧几里得空间

平面嵌入

球面嵌入

在自定义度量空间上的嵌入

一个实际示例

彩蛋:在双曲空间中的嵌入

如何使用 AlignedUMAP

对齐嵌入的在线更新

对齐变化参数

用于时变数据的 AlignedUMAP

处理国会投票记录

应用 AlignedUMAP

可视化结果

预计算 k-近邻

实际用途

可复现性

降维实现性能比较

按数据集大小进行的性能扩展

发布说明

0.5 版本新特性

0.4 版本新特性

0.3 版本新特性

0.2 版本新特性

常见问题

我应该对特征进行归一化吗?

我可以对 UMAP 结果进行聚类吗?

聚类结果都挤在一起,我无法看到内部结构

我内存不足了。救命!

UMAP 占用了我所有的核心。救命!

是否支持 GPU 或多核 CPU?

我可以添加自定义损失函数吗?

是否支持 R 语言?

是否有 C/C++ 实现?

我无法正常运行 UMAP!

PCA / UMAP / VAEs 之间有什么区别?

UMAP 可能出错的情况

成功用例

UMAP 背景知识

UMAP 工作原理

拓扑数据分析和单纯复形

适应真实世界数据

寻找低维表示

UMAP 算法

降维实现性能比较

按数据集大小进行的性能扩展

UMAP 使用示例

交互式可视化

UMAP 精选集

Tensorflow 嵌入投影仪

PixPlot

UMAP 探索器

音频探索器

Orion 搜索

探索 Fashion MNIST

ESM 元基因组图谱

使用 Nomic Atlas 的交互式 UMAP

有趣数据集的探索性分析

数字的素因数分解

近代哲学结构

神经网络中的语言、上下文和几何

激活图谱

Open Syllabus Galaxy

科学论文

哺乳动物器官发生的单细胞转录景观

线虫胚胎发生单细胞分辨率的谱系解析分子图谱

使用激活图谱探索神经网络

TimeCluster:应用于时间数据的降维技术,用于可视化分析

使用 UMAP 对单细胞数据进行可视化降维

揭示大型队列中的多尺度群体结构

了解萨里郡儿童的脆弱性

使用 Nomic Atlas 对文本嵌入进行 UMAP 可视化

设置

下载示例数据

创建图谱数据集

上传到图谱

创建数据地图

API 参考

UMAP API 指南

UMAP

UMAP

UMAP.fit()

UMAP.fit_transform()

UMAP.inverse_transform()

UMAP.set_fit_request()

UMAP.set_transform_request()

UMAP.transform()

ParametricUMAP

有用函数

compute_membership_strengths()

discrete_metric_simplicial_set_intersection()

fast_intersection()

fast_metric_intersection()

find_ab_params()

fuzzy_simplicial_set()

init_graph_transform()

init_transform()

make_epochs_per_sample()

nearest_neighbors()

raise_disconnected_warning()

reset_local_connectivity()

simplicial_set_embedding()

smooth_knn_dist()