如何使用dask_ml运行PCA。我收到一个错误消息:“在长而窄的矩阵情况下,此函数(tsqr)支持QR分解”?

时间:2019-02-16 15:45:50

标签: dask dask-ml

我想对约3000行和6000列的数据执行降维。在这里,观察数(n_samples)<特征数(n_columns)。我无法使用dask-ml达到结果,而通过scikit learning也可以达到同样的效果。我需要对现有代码进行哪些修改?

#### dask_ml
from dask_ml.decomposition import PCA
from dask_ml import preprocessing
import dask.array as da
import numpy as np

train = np.random.rand(3000,6000)
train = da.from_array(train,chunks=(100,100))
complete_pca = PCA().fit(train)

#### scikit learn
from sklearn.decomposition import PCA
from sklearn import preprocessing
import numpy as np

train = np.random.rand(3000,6000)
complete_pca = PCA().fit(train)

1 个答案:

答案 0 :(得分:0)

Dask-ML中的PCA算法仅适用于高而瘦的矩阵。您可以尝试在dask.array中使用原始SVD算法。同样,使用3000x6000矩阵,您也可以只使用一台计算机。

添加类似Dask-ML这样的问题可能会增加您所需要的复杂性。如果Scikit-Learn为您工作,那么我会坚持下去。