首页 > 解决方案 > 在大型矩阵上计算时 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)

标签: pythonpandasscikit-learnmds

解决方案


MDS 具有 O(N^3) 复杂度,它可能没有挂起但仍在运行。查看下面论文的第 3 部分。MDS 将在大型矩阵上执行得很好,但需要相当长的时间。我不知道你想用你的降维做什么,但如果你只是在寻找速度,我会建议某种类型的随机投影(仍然很好用)。

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


推荐阅读