sklearn MDS崩溃我的内核?

时间:2015-04-24 14:28:49

标签: python numpy scikit-learn multi-dimensional-scaling

我有一个50,000 x 15的numpy矩阵,带有连续数据。我想使用MDS(多维缩放)缩小到2个分量,以便可视化二维矢量空间中的数据。出于某种原因,每当我在我的数据上运行MDS时,我的内存和CPU%都会增加很多并且我的内核崩溃,告诉我需要重新启动。 任何人遇到类似问题或知道可能导致此问题的原因?

我使用的是MacBook Air,125GB SSD,4GB RAM,我的开发环境是Spyder IDE。

由于

2 个答案:

答案 0 :(得分:3)

我建议使用5%的随机样本运行MDS。 通过scikit文档,似乎Manifold学习模块中的大多数算法都具有O(n ^ 2)的复杂度。没有针对MDS的具体文档,但是比较运行时间我只能假设MDS是n ^ 2或更差。数据太多,算法效率低,RAM很小=内核崩溃

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

答案 1 :(得分:3)

我们当前的MDS实施基于smacof方法,它太通用了。在许多情况下,PCA / SVD可能会快得多。这是planned as a pull request

同时您可以直接使用sklearn.decomposition.RandomizedPCA代替MDS类。