eamid/trimap
TriMap: Large-scale Dimensionality Reduction Using Triplets
何を解決するか
TriMapは、高次元データを低次元埋め込み(通常は2Dまたは3D)に変換する次元削減の課題に対処します。t-SNEやUMAPとは異なり、局所的なクラスタを優先するのではなく、クラスタ間の相対距離、データの複数スケール、および外れ値の存在をより正確に反映することを目指しています。
動作方法
TriMapは、三つ組制約を使って埋め込みを作成します。三つ組制約の形式は「点 i は点 k より点 j に近い」というものです。これらの三つ組はデータの高次元表現からサンプリングされ、各三つ組の重要性を決定するための重み付けスキームが適用されます。システムは勾配降下法を用いて、これらの制約を満たすように埋め込みを最適化します。
対象ユーザー
CNN特徴量や遺伝子データなどの高次元データセットを可視化する必要があるデータサイエンティストや研究者向けに設計されています。従来の手法よりも、データ構造のより正確なグローバルビューを提供します。
特徴
- グローバル構造の保持: クラスタ間の相対距離を維持し、外れ値を特定することを特に目的としています。
- 複数の実装: 伝統的なNumPy/Numba版と、GPU並列処理に対応したPyTorch版(
TorchTRIMAP)の両方が利用可能です。CUDA、MPS、CPUで高速処理が可能。 - 柔軟なバックエンド: PyTorch版は、正確なPyTorch検索、Faiss(フラットおよびIVF)、NVIDIA cuVS CAGRAなど、さまざまなk-NNバックエンドをサポートしており、非常に大きなデータセットにも対応可能です。
- scikit-learn互換: 通常のsklearnライブラリと同様のトランスフォーマAPI(
fit_transform)を使用しており、統合が容易です。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト