1

連続データを含む 50,000 x 15 numpy マトリックスがあります。2-D ベクトル空間でデータを視覚化するために、MDS (多次元スケーリング) を使用して 2 つのコンポーネントに縮小したいと考えています。何らかの理由で、データに対して MDS を実行するたびに、メモリと CPU の割合が大幅に増加し、カーネルがクラッシュして、再起動する必要があることが通知されます。同様の問題に遭遇した人、またはこれを引き起こしている原因を知っている人はいますか?

私は MacBook Air、125GB SSD、4GB RAM を使用しており、開発環境は Spyder IDE です。

ありがとう

4

2 に答える 2

3

5% のランダム サンプルで MDS を実行することをお勧めします。scikit のドキュメントを見ると、Manifold 学習モジュールのアルゴリズムのほとんどは O(n^2) の複雑さを持っているようです。MDS に関する特定のドキュメントはありませんが、実行時間を比較すると、MDS は n^2 以下であるとしか思えません。多すぎるデータ、非効率なアルゴリズム、小さな RAM = カーネル クラッシュ

http://scikit-learn.org/stable/modules/manifold.html#manifold

于 2015-04-24T15:21:00.397 に答える
3

現在の MDS の実装は、一般的すぎる smacof メソッドに基づいています。多くの場合、PCA / SVD の方がはるかに高速です。これはプルリクエストとして計画されています

それまでの間、クラスsklearn.decomposition.RandomizedPCAの代わりに直接使用できます。MDS

于 2015-04-24T16:51:13.010 に答える