【发布时间】:2020-04-28 17:48:52
【问题描述】:
我最近得到的这个数据集对于我的 RAM 来说太大了。 我必须使用
分块阅读它pd.read_csv('filename.csv', chunksize=1024)
并且数据集中的所有标签都是连续的,即所有的零都在一起,一个和两个。 每个标签有 12000 个,所以每个块都是零或一或二。
我遇到的问题是,即使我使用 randomize 和 test_train_split,我的训练数据中仍然会得到所有相同的标签。
因此,我的模型学会为任何输入输出一个值。
恒定输出取决于随机种子。我需要知道如何解决这个错误。
编辑: 这是要求的代码
data_in_chunks = pd.read_csv(data_file, chunksize=4096)
data = next(iter(data_in_chunks)
X = data.drop(['labels'], axis=1)
Y = data.labels
X_train, X_val, Y_train, Y_val = train_test_split(X, Y, stratify=Y, random_state=0) # train test random state has no effect
for i in iter(data_in_chunks):
train(i) # this is just simplified i used optim in the actual code
所以换句话说,4096 是最高的chunksize 我的 16 gig 的 ram 可以处理,并且由于所有标签的顺序性质,我所有的Y_train 和 Y_test 只有0、1 或 2(所有可能的输出)
请帮忙 提前致谢
【问题讨论】:
-
您应该提供用于拆分的代码。
标签: python pandas numpy dataframe data-science