【发布时间】:2020-08-28 15:33:30
【问题描述】:
我有一个以 csv 格式保存的 ~30GB(~1.7 GB 压缩 | 180K 行 x 32K 列)矩阵。我想将此矩阵转换为稀疏格式,以便能够将完整的数据集加载到内存中,以便使用 sklearn 进行机器学习。填充的单元格包含小于 1 的浮点数。大矩阵的一个警告是目标变量存储为最后一列。允许在 sklearn 中使用这个大矩阵的最佳方法是什么? IE。 如何在不将原始矩阵加载到内存的情况下将 ~30GB csv 转换为 scipy 稀疏格式?
伪代码
- 删除目标变量(保持顺序不变)
- 将 ~30 GB 矩阵转换为稀疏格式(帮助!!)
- 将稀疏格式加载到内存和目标变量中以运行机器学习管道(我该怎么做?)
【问题讨论】:
-
嗨@jcrudy,感谢您分享这个要点,但是看起来它在将原始矩阵转换为稀疏矩阵之前将其加载到内存中。我的原始矩阵约为 30GB,可以加载到我机器上的内存中。
-
根据我的阅读,上面链接的解决方案一次只加载一行 csv 文件。整个稀疏矩阵是在内存中构造的,但密集版本不是。
-
嗨@jcrudy,你是对的!要点确实通过加载行来操作。我不确定如何编辑要点以在我自己的 csv 上进行操作。感谢您为我指明正确的方向。
标签: python matrix scikit-learn sparse-matrix large-data