python - 如何在 dask 数据帧上使用增量 PCA?
问题描述
我正在使用一个 dask 数据帧,由于它的大小,它不能直接加载到内存中。我想执行使用增量 PCA 的顶部降维。
我的数据框本质上是稀疏的,所以问题是我可以执行它,如果是,那么如何执行。
image_features_df.head(3)
feat1 feat2 feat3 ... feat25087 feat25088 fid selling_price
0 0.0 0.0 0.0 ... 0.0 0.0 2 269.00
4 0.3 0.1 0.0 ... 0.0 0.8 26 1720.00
6 0.8 0.0 0.0 ... 0.0 0.1 50 18145.25
以上是我的数据框的视图。我希望输出具有 95% 的累积方差。怎么做?
我的数据框有 100,000 行和 25088 列,所以请告诉一个内存高效的解决方案。
解决方案
看看 dask-ML 中的 PCA 实现,https: //ml.dask.org/modules/generated/dask_ml.decomposition.PCA.html ,这可能已经适用于您的情况,因为它使用 tsqr 算法(https ://arxiv.org/abs/1301.1071 )