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()