Как запустить PCA с помощью dask_ml. Я получаю сообщение об ошибке: "Эта функция (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)
1 ответ
Алгоритм PCA в Dask-ML предназначен только для высоких и худых матриц. Вы можете попробовать использовать необработанные алгоритмы SVD в dask.array. Кроме того, с матрицей 3000x6000 вы, вероятно, также можете использовать только одну машину.
Добавление чего-то вроде Dask-ML для решения проблемы такого размера может добавить больше сложности, чем вам нужно. Если Scikit-Learn работает для вас, я бы придерживался этого.