我有一个50,000 x 15的numpy矩阵,带有连续数据。我想使用MDS(多维缩放)缩小到2个分量,以便可视化二维矢量空间中的数据。出于某种原因,每当我在我的数据上运行MDS时,我的内存和CPU%都会增加很多并且我的内核崩溃,告诉我需要重新启动。 任何人遇到类似问题或知道可能导致此问题的原因?
我使用的是MacBook Air,125GB SSD,4GB RAM,我的开发环境是Spyder IDE。
由于
答案 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
类。