如何将datasets.IMDB中train_data完备划分为10份数据,10份数据互不重复

简介: 在这段代码中,首先使用list()函数将range对象test_indices转换为列表,然后使用random.shuffle方法将其随机打乱顺序。接下来,使用KFold方法将test_indices划分为K个互不重叠的子集,每个子集包含相同数量的索引。接着,使用这些索引从test_data.examples中选择相应的examples,并将其作为新的子集添加到test_subsets列表中。最终,test_subsets列表中将包含10个不重叠的测试集子集。
from torchtext.legacy import data, datasets
TEXT = data.Field(tokenize='spacy')
LABEL = data.LabelField(dtype=torch.float)
train_data, test_data = datasets.IMDB.splits(TEXT, LABEL)

------------------如何将train_data完备划分为10份数据,10份数据互不重复


如果要先将数据集打乱,再划分为10个数据集,可以先对test_data.examples随机打乱顺序,然后再进行KFold划分。

import random
test_indices = range(len(test_data.examples))
random.shuffle(test_indices)
k = 10
kfold = KFold(n_splits=k)
test_subsets = []
for _, test_idx in kfold.split(test_indices):
    test_subset = data.Dataset([test_data.examples[i] for i in test_idx], fields=[('text', TEXT), ('label', LABEL)])
    test_subsets.append(test_subset)

在这段代码中,首先使用random.shuffle方法将test_indices随机打乱顺序,然后使用KFold方法将test_indices划分为K个互不重叠的子集,每个子集包含相同数量的索引。接下来,使用这些索引从test_data.examples中选择相应的examples,并将其作为新的子集添加到test_subsets列表中。最终,test_subsets列表中将包含10个不重叠的测试集子集。


-------------------上面代码报错:TypeError: 'range' object does not support item assignment


因为range对象不支持直接修改索引,而只有列表或其他可变序列支持此操作。因此,我们需要将test_indices从range对象转换为列表,然后在对其进行打乱顺序和切片操作。下面是修改后的代码:


import random
test_indices = list(range(len(test_data.examples)))
random.shuffle(test_indices)
k = 10
kfold = KFold(n_splits=k)
test_subsets = []
for _, test_idx in kfold.split(test_indices):
    test_subset = data.Dataset([test_data.examples[i] for i in test_idx], fields=[('text', TEXT), ('label', LABEL)])
    test_subsets.append(test_subset)

在这段代码中,首先使用list()函数将range对象test_indices转换为列表,然后使用random.shuffle方法将其随机打乱顺序。接下来,使用KFold方法将test_indices划分为K个互不重叠的子集,每个子集包含相同数量的索引。接着,使用这些索引从test_data.examples中选择相应的examples,并将其作为新的子集添加到test_subsets列表中。最终,test_subsets列表中将包含10个不重叠的测试集子集。

相关文章
|
6月前
|
BI 索引 Python
利用Numpy读取iris数据集并进行排序、去重、求统计量等操作实战(附源码)
利用Numpy读取iris数据集并进行排序、去重、求统计量等操作实战(附源码)
332 0
使用python将数据集划分为训练集、验证集和测试集
使用python将数据集划分为训练集、验证集和测试集
|
3月前
|
机器学习/深度学习 JavaScript 前端开发
深度学习必备:对数据集的拆分、根据拆分图片拆分labels、对全部标注标签进行区间检查
使用JavaScript代码或浏览器扩展可以一次性在浏览器中打开多个相同的标签页。
|
4月前
|
机器学习/深度学习 算法 数据挖掘
Python实现聚类(Kmeans)分析客户分组
Python实现聚类(Kmeans)分析客户分组
115 0
Python实现聚类(Kmeans)分析客户分组
|
5月前
|
算法 数据挖掘 数据处理
数据分析之可重复与独立样本的T-Test分析
数据分析之可重复与独立样本的T-Test分析
35 2
|
6月前
|
数据可视化
股票收益分布一致性检验KS检验KOLMOGOROV-SMIRNOV、置换检验PERMUTATION TEST可视化
股票收益分布一致性检验KS检验KOLMOGOROV-SMIRNOV、置换检验PERMUTATION TEST可视化
|
6月前
【SPSS】两独立样本的极端反应检验和两配对样本的非参数检验详细操作教程(附案例实战)
【SPSS】两独立样本的极端反应检验和两配对样本的非参数检验详细操作教程(附案例实战)
178 0
|
编解码 Python
python--海温、OLR数据分布做显著性检验,绘制空间分布并打点
使用python对海洋气象数据做显著性检验,并绘制空间pattern
python--海温、OLR数据分布做显著性检验,绘制空间分布并打点
|
机器学习/深度学习 算法 Python
python机器学习 train_test_split()函数用法解析及示例 划分训练集和测试集 以鸢尾数据为例 入门级讲解
python机器学习 train_test_split()函数用法解析及示例 划分训练集和测试集 以鸢尾数据为例 入门级讲解
3243 0
python机器学习 train_test_split()函数用法解析及示例 划分训练集和测试集 以鸢尾数据为例 入门级讲解
|
PyTorch 算法框架/工具
如何将x_data和y_data利用torch转换成小批量数据,并要求打乱数据,以及将数据标准化或者归一化,如何处理?
以上代码中,在定义预处理操作transform时,只在Normalize函数的第一个参数中传入x_data的均值和标准差,而在第二个参数中传入空元组,表示不对y_data进行标准化。 接着,将标准化后的x_data和原始的y_data转换为张量格式,并将它们合并为一个TensorDataset对象。最后,定义dataloader对象,设置batch_size和shuffle参数,并使用上述数据集对象作为输入数据。
320 0