大規模なデータセットの効率的な次元削減


12

約100万行と約500Kのスパースフィーチャのデータセットがあります。次元を1K〜5Kの密集したフィーチャのオーダーのどこかに減らしたい。

sklearn.decomposition.PCAスパースデータでは機能しませんsklearn.decomposition.TruncatedSVD。使用しようとしましたが、メモリエラーがすぐに発生します。このスケールで効率的に次元を削減するための私のオプションは何ですか?

回答:


11

あなたは聞いたことがある制服マニホールド近似とプロジェクション(UMAP)

UMAP(Uniform Manifold Approximation and Projection)は、非線形次元削減のための新しい多様体学習手法です。UMAPは、リーマン幾何学と代数トポロジーに基づく理論的なフレームワークから構築されます。結果は、実際のデータに適用される実用的なスケーラブルなアルゴリズムです。UMAPアルゴリズムは、視覚化の品質に関してt-SNEと競合し、優れた実行時パフォーマンスでグローバル構造の多くを間違いなく保持します。さらに、上記のUMAPは埋め込み次元に計算上の制限がないため、機械学習の汎用的な次元削減手法として実行可能です。

彼らのコードオリジナルのペーパーで長所と短所のリストを確認してください。非常に使いやすいです。

クイックファクト: UMAPは大規模なデータセットを処理でき、t-SNEより高速であり、スパースマトリックスデータへのフィッティングもサポートします。また、t-SNEとは異なり、汎用の次元削減手法であり、可視化だけでなく可視化にも使用できます。他の機械学習モデルにフィードするための機能スペースを削減するため。

具体的な例:方法をベンチマークし、他のいくつかの次元削減手法のベンチマークノートブックと比較しました。


2
(+1)-UMAPは本当に素晴らしいです!あなたは少し改造することを検討するかもしれません:真ん中の段落と次の箇条書きは同じ情報を繰り返します。また、(多かれ少なかれ)彼らのウェブサイトからコピーペーストされているので、あなたはそれを引用にすることができます。
n1k31t4

2
確かに、私は確かにそれを減らすことができます。ここでそれらを指摘したかっただけで、いくつかのポイントは少し言い換えられています。ありがとう。とにかく私はUMAPが好きです。
TwinPenguins 2018

1
推薦ありがとうございます!視覚化のためのt-SNEの代替としてそれを知っていましたが、それが一般的な次元削減にも適していることを理解していませんでした。
timleathart

1

この投稿に出くわした人々がUMAPの効率が不十分であることに気付いた場合に備えて、私が出会った他のテクニックをいくつか紹介します。

  • d × mdmsklearn.random_projection

  • mmsklearn.feature_extraction.FeatureHasher

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.