我有一个带有连续数据的 50,000 x 15 numpy 矩阵。我想使用 MDS(多维缩放)缩小到 2 个分量,以便在 2-D 向量空间中可视化数据。出于某种原因,每当我去对数据运行 MDS 时,我的内存和 CPU % 都会大幅增加,并且我的内核崩溃,告诉我需要重新启动。任何人都遇到类似的问题或知道可能导致这种情况的原因吗?
我使用的是MacBook Air,125GB SSD,4GB RAM,我的开发环境是Spyder IDE。
谢谢
我们目前的MDS实现是基于smacof方法的,这种方法太通用了。在许多情况下,PCA/SVD可能会快得多。这是计划为拉取请求的。
同时,您可以直接使用 sklearn.decomposition.RandomizedPCA
而不是 MDS
类。
我建议使用5%的随机样本运行MDS。浏览scikit文档,似乎Manifold学习模块中的大多数算法都具有O(n^2)的复杂性。没有针对 MDS 的特定文档,但比较运行时间我只能假设 MDS 是 n^2 或更差。数据过多,算法效率低下,RAM小=内核崩溃
http://scikit-learn.org/stable/modules/manifold.html#manifold