0

我想对大约 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)
4

1 回答 1

0

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

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

于 2019-02-20T00:30:32.090 回答