約100万行と約500Kのスパースフィーチャのデータセットがあります。次元を1K〜5Kの密集したフィーチャのオーダーのどこかに減らしたい。
sklearn.decomposition.PCA
スパースデータでは機能しませんsklearn.decomposition.TruncatedSVD
。使用しようとしましたが、メモリエラーがすぐに発生します。このスケールで効率的に次元を削減するための私のオプションは何ですか?
約100万行と約500Kのスパースフィーチャのデータセットがあります。次元を1K〜5Kの密集したフィーチャのオーダーのどこかに減らしたい。
sklearn.decomposition.PCA
スパースデータでは機能しませんsklearn.decomposition.TruncatedSVD
。使用しようとしましたが、メモリエラーがすぐに発生します。このスケールで効率的に次元を削減するための私のオプションは何ですか?
回答:
あなたは聞いたことがある制服マニホールド近似とプロジェクション(UMAP) ?
UMAP(Uniform Manifold Approximation and Projection)は、非線形次元削減のための新しい多様体学習手法です。UMAPは、リーマン幾何学と代数トポロジーに基づく理論的なフレームワークから構築されます。結果は、実際のデータに適用される実用的なスケーラブルなアルゴリズムです。UMAPアルゴリズムは、視覚化の品質に関してt-SNEと競合し、優れた実行時パフォーマンスでグローバル構造の多くを間違いなく保持します。さらに、上記のUMAPは埋め込み次元に計算上の制限がないため、機械学習の汎用的な次元削減手法として実行可能です。
彼らのコードとオリジナルのペーパーで長所と短所のリストを確認してください。非常に使いやすいです。
クイックファクト: UMAPは大規模なデータセットを処理でき、t-SNEより高速であり、スパースマトリックスデータへのフィッティングもサポートします。また、t-SNEとは異なり、汎用の次元削減手法であり、可視化だけでなく可視化にも使用できます。他の機械学習モデルにフィードするための機能スペースを削減するため。
具体的な例:方法をベンチマークし、他のいくつかの次元削減手法のベンチマークノートブックと比較しました。
この投稿に出くわした人々がUMAPの効率が不十分であることに気付いた場合に備えて、私が出会った他のテクニックをいくつか紹介します。
sklearn.random_projection
sklearn.feature_extraction.FeatureHasher