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),便於整合。
相關
- 專案
- 專案
- 專案
- 專案
- 專案