通过组合大量 CSV 文件创建的单个 CSV 太大而无法处理。我有什么选择?

数据挖掘 Python 数据集 熊猫 大数据 CSV
2022-03-09 11:09:26

我目前正在处理的数据集有100 多个 csv 文件每个文件的大小都超过 250MB这些文件包含从不同位置捕获的时间序列数据,并且所有文件都具有与列相同的特征。

据我了解,我必须将这些数据合并到一个单独的 csv文件中,才能在 CNN、RNN 或任何其他网络中使用这些数据,并且在完成后假定其超过 20GB。由于 RAM 和计算限制,这是一个不可接受的文件大小。

  1. 有哪些方法可以减小 csv 文件的文件大小以将文件导入模型?

  2. 有没有更好的文件版本可以将它们转换成这样,所以不会占用太多空间?(我尝试了 .db 版本,但还不够)

  3. 有没有一种我没有想到的方法将文件单独加载到模型中,以便我可以继续使用这些 csv 文件的当前版本?

1个回答

具体问题1到3实际上无关紧要:问题不在于文件格式,而在于内存中数据的大小。因此,即使使用一些较小的文件格式,数据仍需要在内存中完全编码以训练模型。

显然,简单的技术解决方案是使用具有更多内存的机器:可能是一些计算机服务器(顺便说一句,通常在大学中可用)或一些云服务。

如果这是不可能的,您可以通过不同的方式减小数据的大小:

  • 只需使用一小部分数据,随机或仅选择某些位置和/或特定时间间隔。这应该足以测试您的代码、尝试训练模型等。
  • 对于时间维度,重新采样数据可能是一种选择。例如,如果您每小时而不是每分钟都有数据点,则数据会缩小 60 倍。

一般来说,您应该检查使用所有数据对于您的目标确实是必要的。更多的数据并不总能提高性能。您可以通过基于各种大小的随机子集(消融研究)训练/测试模型来对此进行测试,并观察性能如何随大小(或不随大小)增加。