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),便於整合。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案