我有一个大型数据集。它目前采用numpy.array.tofile()
创建的未压缩numpy数组文件的形式。每个文件大约有100000行,每行363个浮点数。共有192个文件,共52 Gb。
我想将这个数据的随机五分之一分成一个测试集,并将该测试集的随机五分之一分成一个验证集。
另外,我一次只能训练1 Gb(GPU的板载内存限制)所以我需要随机化所有数据的顺序,这样我就不会通过训练数据来引入偏差订购它被收集。
我的主内存大小为8 Gb。任何人都可以推荐一种随机化和分割这个巨大数据集的方法吗?
答案 0 :(得分:1)
我在External shuffle: shuffling large amount of data out of memory
找到了我需要的答案基本上,你会发现一个对数字足够随机的哈希值(在这种情况下我使用Murmur3)然后你应用外部合并排序。
答案 1 :(得分:0)
您可以为每一行分配一个唯一的序号,然后选择这些数字的随机样本,然后将每个相关行连续提取到一个新文件中。