在大型矩阵上进行计算时,MDS会挂起

时间:2019-05-22 17:44:15

标签: python pandas scikit-learn mds

我正在尝试将尺寸缩减从64535 x 67矩阵扩展到64535 x 2矩阵。除了这是一个很大的矩阵而且有一个很大的减少量之外,我不确定为什么下面的拟合变换计算被挂起的原因是什么。 mds是否没有能力处理如此大的矩阵/归约?有解决方法吗?

temp = df.select_dtypes(include=[np.number])
norm = (temp - temp.mean())/temp.std()

mds = sklearn.manifold.MDS(n_components=2, eps=0)
data2d = mds.fit_transform(norm)

1 个答案:

答案 0 :(得分:0)

MDS具有O(N ^ 3)复杂度,它可能没有挂起,但仍在运行。请查看下面纸张的第3节。 MDS可以在大型矩阵上正常运行,但需要花费大量时间。我不知道您要如何降低尺寸,但是如果您只是在寻找速度,我会建议您使用某种randomized projections(仍然可以正常使用)。

http://web.mit.edu/cocosci/Papers/nips02-localglobal-in-press.pdf