eamid/trimap
TriMap: Large-scale Dimensionality Reduction Using Triplets
解决的问题
TriMap 解决了将高维数据转换为低维嵌入(通常为 2D 或 3D)的降维挑战,同时保留数据的全局结构。与 t-SNE 或 UMAP 等方法不同,TriMap 不侧重于局部聚类,而是旨在更好地反映聚类间的相对距离、数据的多尺度特征以及异常值的存在。
工作原理
TriMap 使用三元组约束来创建嵌入。三元组约束的形式为:"点 i 比点 k 更接近点 j"。这些三元组从数据的高维表示中采样,并应用加权方案来确定每个三元组的重要性。系统使用梯度下降优化嵌入,以满足这些约束。
适用人群
专为需要可视化高维数据集(如 CNN 特征或基因组数据)的数据科学家和研究人员设计,相比传统方法,能提供更准确的数据结构全局视图。
主要亮点
- 全局结构保留:专门设计用于保持聚类间的相对距离并识别异常值。
- 多种实现:提供传统的 NumPy/Numba 版本和 GPU 并行的 PyTorch 版本(
TorchTRIMAP),可在 CUDA、MPS 和 CPU 上实现更快的处理速度。 - 灵活的后端支持:PyTorch 版本支持多种 k-NN 后端,包括精确的 PyTorch 搜索、Faiss(平面和 IVF)、以及适用于超大数据集的 NVIDIA cuVS CAGRA。
- 与 scikit-learn 兼容:使用与标准 sklearn 库类似的转换器 API(
fit_transform),便于集成。
相关
- 项目
- 项目
- 项目
- 项目
- 项目