UMAP 流形降维与可视化
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/umap-learn。
技能介绍
要解决什么问题
高维数据(基因表达、文档向量、图像特征)直接做聚类或画图往往受「维数灾难」影响:距离度量失效、可视化不可读。PCA 是线性的,t-SNE 擅长 2D 可视化但难以 transform 新样本,也不适合作为 5~50 维的特征工程步骤。你需要一种既快又可扩展的非线性嵌入,在保留局部邻域的同时尽量不丢全局拓扑,并且 API 能像 sklearn 一样塞进流水线。
技能如何工作
本技能围绕 UMAP-Learn 的典型工程路径组织说明:
- 预处理:应用 UMAP 前将特征缩放到可比尺度,避免某一维 dominate 距离。
- 核心拟合:
UMAP类遵循 scikit-learn 约定,可作为 t-SNE/PCA 的 drop-in 替代;通过n_neighbors、min_dist、n_components、metric分别控制局部/全局平衡、低维点间距、输出维度与距离定义(数值用euclidean,文本向量常用cosine)。 - 监督与半监督:拟合时传入标签
y可在分离类别的同时保持类内结构;未标注点用-1标记。 - 聚类预处理:与「好看的可视化」不同,聚类场景常把
n_neighbors提到约 30、min_dist设为0.0、n_components设为 5~10,再交给 HDBSCAN 等密度聚类。 - 新数据投影:已训练模型可用
transform()将未见点映射到同一嵌入空间;分布漂移明显时文档建议考虑 Parametric UMAP(神经网络编码器,支持更高效变换与可选逆变换)。
适用边界与注意点
UMAP 并不完美保持密度,低 min_dist 或不当的 n_neighbors 可能产生碎片簇或人为分团;聚类结果需要额外验证。transform 假设训练与测试在高维空间分布一致;标准版的 逆变换 计算重且在嵌入凸包外效果差。随机优化下应固定 random_state 以保证可复现;大数据集可配合 low_memory=True 或先做 PCA 再 UMAP。
使用场景
- 单细胞或基因表达矩阵维度过高,需先 UMAP 降到 5~10 维再跑 HDBSCAN 做密度聚类
- 已有带标签的表格特征,希望在 2D 嵌入里分开类别同时保留类内邻近关系
- 文档或句向量用 cosine 距离做 UMAP,导出散点图检查主题是否成团
- 训练好的 UMAP 模型要对增量样本调用 transform,映射到同一嵌入空间做在线打分
适合人员
- 做单细胞/转录组下游分析的生信工程师,常把 UMAP 当 HDBSCAN 前的降维步骤并区分可视化与聚类参数
- 维护 sklearn 流水线的机器学习工程师,需要 UMAP 与 StandardScaler、后续分类器同构集成
- 用嵌入向量做主题或检索质量抽查的 NLP 研究员,要调 metric 与 n_neighbors 看 2D 结构
- 探索高维实验数据(批次、时序)的算法研究员,需要监督 UMAP 或 AlignedUMAP 做可比对嵌入