用途:UMAP 用于非线性降维,适合将高维数据嵌入低维空间,以保留局部与全局结构。常用于数据可视化、聚类预处理(如配合 HDBSCAN)、监督/半监督降维及机器学习特征工程。
安装与基本用法:使用 uv pip install umap-learn 安装。UMAP 遵循 scikit-learn 约定,可作为 t-SNE 或 PCA 的替代。应用前必须标准化特征,例如 StandardScaler().fit_transform(data);随后可调用 embedding = umap.UMAP().fit_transform(scaled_data),或分步 fit 后访问 reducer.embedding_。
主要参数:n_neighbors(默认 15)平衡局部与全局结构,值越小越强调局部细节,越大越强调全局结构;min_dist(默认 0.1)控制低维空间中点的密集程度,0.0 利于聚类,0.1-0.3 适合可视化;n_components(默认 2)决定嵌入维度,可视化用 2-3,聚类预处理用 5-10,特征工程可用更高;metric 指定距离度量,如 euclidean、cosine、hamming 等。
监督与半监督:在 fit_transform 时传入 y=labels 可使用标签信息;未标注点按 scikit-learn 约定标记为 -1。可训练后对测试数据调用 transform() 进行嵌入。
聚类:建议使用 n_neighbors=30、min_dist=0.0、n_components=5-10 进行预处理,再配合 HDBSCAN。注意 UMAP 不完全保留密度,可能产生人为簇划分,需要验证。
高级功能:Parametric UMAP 需安装 uv pip install umap-learn[parametric_umap](依赖 TensorFlow 2.x),支持学习映射、逆变换与自定义网络。普通 UMAP 支持 inverse_transform,但计算昂贵且外推效果有限;AlignedUMAP 可用于相关数据集的对齐嵌入。
限制:结果受随机性影响,建议设置 random_state;transform 假设训练与测试数据分布一致,否则可考虑 Parametric UMAP;大数据集可设 low_memory=True 或先用 PCA 降维。