gpt4 book ai didi

loops - 如何在训练/测试集中使用拆分大数据集,但也使用 pandas batchsize 迭代进行更新

转载 作者:行者123 更新时间:2023-11-28 21:38:06 24 4
gpt4 key购买 nike

我每次迭代都使用来自一个非常大的文件的批处理来更新我的参数。但在执行此操作之前,我想将整个大型数据集拆分为测试和训练集。通过交叉验证,我想做同样的事情。

我曾尝试使用 dask 拆分整个集合,然后将一个分区转换为 pandas 以使用批处理来更新我的算法。

dask 部分(如果可能我宁愿不使用):

dict_bag=dff.read_csv("gdrive/My Drive/train_triplets.txt",  blocksize=int(1e9),sep='\s+',header=None)
df_train, df_test = df_bag.random_split([2/3, 1/3], random_state=0)
df_batch=df_train.loc[1:1000].compute()

Pandas 部分:

df_chunk = pd.read_csv("gdrive/My Drive/train_triplets.txt", chunksize=6000000,sep='\s+',header=None)
for chunk in df_chunk:

#### here I have my algorithm

我希望有一个 pandas 函数可以像我已经拥有的那样从一个 url 创建一个具有 block 大小的 pd 文件,然后分成一个训练集和一个测试集。这样我就可以分批迭代大型火车和单独的测试集。这样我也可以拆分训练集来执行交叉验证。

编辑:我的 Dataframe 是一个文本文件阅读器,我如何从中获得训练集和测试集和/或我能否进行交叉验证

最佳答案

您可能想要使用 dask.dataframe.random_split方法。

50/50 拆分

>>> a, b = df.random_split([0.5, 0.5])

80/10/10 分割,例如用于训练/测试/验证

>>> a, b, c = df.random_split([0.8, 0.1, 0.1], random_state=123)

关于loops - 如何在训练/测试集中使用拆分大数据集,但也使用 pandas batchsize 迭代进行更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55830879/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com