Как запустить PCA с помощью dask_ml.Я получаю сообщение об ошибке: «Эта функция (tsqr) поддерживает QR-декомпозицию в случае высоких и худых матриц»? - PullRequest
0 голосов
/ 16 февраля 2019

Я хочу уменьшить размерность данных, используя около 3000 строк и 6000 столбцов.Здесь количество наблюдений (n_samples) <количество объектов (n_columns).Я не могу достичь результата, используя dask-ml, тогда как то же самое возможно с помощью scikit learn.Какие изменения мне нужно внести в мой существующий код? </p>

#### 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 голосов
/ 20 февраля 2019

Алгоритм PCA в Dask-ML предназначен только для матриц с высокими и худыми размерами.Вы можете попробовать использовать необработанные алгоритмы SVD в dask.array.Кроме того, с матрицей 3000x6000 вы, вероятно, также можете использовать только одну машину.

Добавление чего-то вроде Dask-ML для решения проблемы такого размера может добавить больше сложности, чем вам нужно.Если Scikit-Learn работает для вас, я бы придерживался этого.

...