Repolode
lmcinnes

lmcinnes/umap

Python 库,实现 UMAP 非线性降维算法,可用于数据可视化和机器学习预处理。

Star
8,288
Fork
880
未关闭 Issue
539
最近提交
昨天

这是什么?

UMAP(Uniform Manifold Approximation and Projection)是一种降维算法,可以把高维数据投影到低维空间,常用于二维或三维可视化,作用与 t-SNE 类似。它也可以作为通用的降维步骤,用在聚类或其他机器学习任务之前。

该库遵循 scikit-learn 的 API 设计,可以直接调用 fit_transform,也能放进 sklearn 流水线中使用。主要参数包括控制局部与全局结构平衡的 n_neighbors、控制点之间紧密程度的 min_dist,以及支持余弦、相关等多种距离函数的 metric。此外还支持稀疏矩阵输入,并可通过 transform 将新数据点加入已有的嵌入结果。

除核心算法外,库中还包含用于绘图的 umap.plot 子包、基于神经网络训练的 Parametric UMAP(需安装 TensorFlow),以及额外保留局部密度信息的 densMAP。可通过 pip 或 conda-forge 安装。

核心功能

  • 01提供与 scikit-learn 风格一致的 fit、transform 接口
  • 02支持多种距离函数,包括余弦、相关等非度量距离
  • 03可直接处理稀疏矩阵输入
  • 04通过 y 参数支持有监督和半监督降维
  • 05内置 umap.plot 绘图模块,并支持 densMAP 保留局部密度

适用场景

  • 将词向量、单细胞数据等高维数据降到二维进行可视化
  • 在运行 HDBSCAN 等聚类算法前进行降维
  • 将 UMAP 作为预处理步骤接入 scikit-learn 流水线

快速上手

  1. 1

    通过 pip 安装

    pip install umap-learn
  2. 2

    通过 conda(conda-forge)安装

    conda install -c conda-forge umap-learn
  3. 3

    在 Python 中导入 umap,然后调用 umap.UMAP().fit_transform(data)

使用前须知

  • Parametric UMAP 需要额外安装 TensorFlow。

收录于专题

标签

#dimensionality-reduction#machine-learning#visualization#manifold-learning#clustering#python#topological-data-analysis#umap

常见问题

umap 是什么?
Python 库,实现 UMAP 非线性降维算法,可用于数据可视化和机器学习预处理。 UMAP(Uniform Manifold Approximation and Projection)是一种降维算法,可以把高维数据投影到低维空间,常用于二维或三维可视化,作用与 t-SNE 类似。它也可以作为通用的降维步骤,用在聚类或其他机器学习任务之前。
umap 可以免费使用吗?用的什么许可证?
umap 以 BSD-3-Clause 许可证开源。用于商业产品前,请先确认许可证条款。
umap 还在维护吗?
活跃维护中。umap 最近一次提交是在 2026年11月6日。
umap 适合用来做什么?
将词向量、单细胞数据等高维数据降到二维进行可视化 在运行 HDBSCAN 等聚类算法前进行降维 将 UMAP 作为预处理步骤接入 scikit-learn 流水线
umap 怎么安装和运行?
通过 pip 安装: pip install umap-learn 通过 conda(conda-forge)安装: conda install -c conda-forge umap-learn 在 Python 中导入 umap,然后调用 umap.UMAP().fit_transform(data)
在哪里获取 umap?
源代码和安装说明在 GitHub 上:https://github.com/lmcinnes/umap

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目