首页 > 解决方案 > 如何使用 dask_ml 运行 PCA。我收到错误消息,“此函数 (tsqr) 在高瘦矩阵的情况下支持 QR 分解”?

问题描述

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

#### 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)

标签: daskdask-ml

解决方案


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

为这种规模的问题添加诸如 Dask-ML 之类的东西可能会增加比您需要的更多的复杂性。如果 Scikit-Learn 对你有用,那么我会坚持下去。


推荐阅读