该算法基于对数据的三个假设:
数据均匀地分布在黎曼流形上;
黎曼度量是局部常数(或者可以这样近似) ;
流形是局部连通的。

UMAP 的优势

UMAP 在其当前的化身中取得了一些重大胜利。
首先,UMAP速度很快。它可以毫不费力地处理大型数据集和高维数据,超出大多数 t-SNE 包可以管理的范围。这包括非常高维的稀疏数据集。UMAP 已成功地直接用于超过一百万维的数据。
其次,UMAP 在嵌入维度上的扩展性很好——它不仅仅用于可视化!您可以使用 UMAP 作为通用降维技术,作为其他机器学习任务的初步步骤。稍加注意,它就可以与hdbscan集群库很好地配合(有关更多详细信息,请参阅使用 UMAP 进行集群)。
第三,与大多数 t-SNE 实现相比,UMAP 在保留数据全局结构的某些方面通常表现更好。这意味着它通常可以为您的数据提供更好的“大图”视图,并保留本地邻居关系。
第四,UMAP支持多种距离函数,包括余弦距离相关距离等非度量距离函数。您终于可以使用余弦距离正确嵌入词向量了!
transform第五,UMAP 支持通过标准 sklearn方法向现有嵌入添加新点。这意味着 UMAP 可以用作 sklearn 管道中的预处理转换器。
第六,UMAP 支持有监督和半监督的降维。这意味着,如果您希望将标签信息用作降维的额外信息(即使它只是部分标签),您可以这样做——就像y 在 fit 方法中提供它作为参数一样简单。
第七,UMAP 支持多种额外的实验特性,包括: 一个“逆变换”,可以近似一个高维样本,该样本将映射到嵌入空间中的给定位置;嵌入非欧几里得空间的能力,包括双曲嵌入和具有不确定性的嵌入;还存在对嵌入数据帧的非常初步的支持。
最后,UMAP 在流形学习方面具有扎实的理论基础(参见我们关于 ArXiv 的论文)。这既证明了该方法的合理性,又允许将很快添加到库中的进一步扩展。

UMAP 在嵌入大型高维数据集方面非常有效。特别是它在输入维度和嵌入维度上都可以很好地扩展。为了获得最佳性能,我们建议安装最近邻计算库pynndescent。UMAP 可以在没有它的情况下运行,但如果安装它会运行得更快,尤其是在多核机器上。

https://github.com/NikolayOskolkov/HowUMAPWorks/blob/master/HowUMAPWorks.ipynb
UMAP 的工作原理 以及为什么它比 tSNE 更好
论文笔记:UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction