我想对约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)
答案 0 :(得分:0)
Dask-ML中的PCA算法仅适用于高而瘦的矩阵。您可以尝试在dask.array中使用原始SVD算法。同样,使用3000x6000矩阵,您也可以只使用一台计算机。
添加类似Dask-ML这样的问题可能会增加您所需要的复杂性。如果Scikit-Learn为您工作,那么我会坚持下去。