python - 在大型矩阵上计算时 MDS 挂起

标签 python pandas scikit-learn mds

我正在尝试将 64535 x 67 矩阵降维为 2 维,将其变为 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)

最佳答案

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

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

关于python - 在大型矩阵上计算时 MDS 挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56262287/

相关文章:

python - 如何使用 scikit-learn API 实现元估计器?

python - 为什么我们应该在测试集上执行 K Fold 交叉验证?

python - Scikit-learn 的 LabelBinarizer 与 OneHotEncoder

python - "if possible, do it"的 pythonic 方式是什么?

python - mysqldb没有安装

python - 根据索引的条件创建新列

python - BoxPlot、Matplotlib 内的观察数量

python - 如何使用 Bottle 获取请求正文?

python - 在 Ubuntu 上安装 Chromedriver 以使用 Splinter

python - 如何用 Pandas 检测上升和下降趋势?