技能umap-learn
U
umap-learn
使用 UMAP-learn 进行非线性降维、2D/3D 嵌入、聚类预处理、监督或半监督 UMAP、DensMAP、AlignedUMAP 以及参数化 UMAP 工作流。
UMAP-Learn - 非线性降维与流形学习技能
技能概述
UMAP-Learn 是一个高性能的 Python 降维库,适用于高维数据的可视化、聚类预处理和特征工程,支持监督与半监督学习、参数化模型和对齐数据集分析。
适用场景
- 高维数据可视化:将复杂的特征空间映射到 2D/3D 可视化空间,揭示数据的内在聚类结构和拓扑关系,适用于探索性数据分析和模式发现。
- 聚类预处理流程:作为 HDBSCAN 等密度聚类算法的前置步骤,克服维度诅咒,提升聚类效果和数据分群质量。
- 监督与半监督特征工程:利用标签信息引导降维过程,生成更有区分性的嵌入特征,用于下游分类模型训练或半监督学习场景。
核心功能
- 非线性降维与嵌入:提供高效的流形学习算法,支持欧氏、余弦、汉明等多种距离度量,通过 n_neighbors、min_dist、n_components 等参数灵活控制局部与全局结构的平衡。
- 监督与半监督学习:通过 fit_transform 的 y 参数引入标签信息,在保持类内结构的同时实现类间分离,支持部分标签的半监督场景。
- Parametric UMAP 与新数据变换:支持通过神经网络学习参数化映射函数,实现新数据的高效变换和逆变换重建,适用于实时生产环境和深度学习工作流。
常见问题
UMAP 与 t-SNE 有什么区别?
UMAP 在 preserving global structure(全局结构)方面通常优于 t-SNE,且计算效率更高、内存占用更少。t-SNE 主要专注于局部邻域关系,而 UMAP 通过拓扑结构分析能更好地平衡局部和全局模式。此外,UMAP 支持 transform 方法将新数据映射到已学习的嵌入空间,而 t-SNE 通常需要重新计算。
如何选择 n_neighbors 和 min_dist 参数?
n_neighbors 控制局部与全局结构的平衡:较小值(2-5)强调局部细节,较大值(50-200)突出全局拓扑。min_dist 控制嵌入点的紧密程度:较小值(0.0-0.1)适合聚类应用,较大值(0.5-0.99)强调结构保留而非紧密聚集。一般可视化场景建议从 n_neighbors=15、min_dist=0.1 开始,聚类预处理建议 n_neighbors=30、min_dist=0.0。
UMAP 需要什么样的数据预处理?
预处理策略应与选择的 metric 匹配:对于欧氏距离等数值型度量,建议使用 StandardScaler 标准化特征以避免高方差列主导距离计算;对于 cosine、binary 或 precomputed-distance 度量,应选择匹配的数据预处理方式而非盲目标准化。确保输入数据无 NaN 或 inf 值,必要时进行缺失值处理。