dask - 如何使用 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)
解决方案
Dask-ML 中的 PCA 算法仅适用于高瘦矩阵。您可以尝试在 dask.array 中使用原始 SVD 算法。此外,对于 3000x6000 矩阵,您也可以只使用一台机器。
为这种规模的问题添加诸如 Dask-ML 之类的东西可能会增加比您需要的更多的复杂性。如果 Scikit-Learn 对你有用,那么我会坚持下去。
推荐阅读
- android - GridView 中的图像很小
- wpf - WPF - 可以将标签的属性(可见性)绑定到标签的目标吗?
- spring - 在Spring Boot应用程序@runtime中动态加载外部jar
- sql-server - 连接到 Windows Container 内的 MS SQLServer 时出现“信号量超时期限已过”
- sql-server - 将 Django 连接到 MSSQL Server 2012 时出错
- python - 如何在 AWS Lambda 上的无服务器应用程序中存储和使用 HTML 模板(使用 AWS SAM)?
- c# - 在 WPF MVVM 中使用 MEF 时导入不起作用
- javascript - Plotly.js - 热图动画非常闪烁
- html - 二嵌套元素和
同一行的元素?
- c++ - 关于单链表的困惑