如何将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个不重叠的测试集子集。

相关文章
|
4月前
|
机器学习/深度学习 JavaScript 前端开发
深度学习必备:对数据集的拆分、根据拆分图片拆分labels、对全部标注标签进行区间检查
使用JavaScript代码或浏览器扩展可以一次性在浏览器中打开多个相同的标签页。
|
6月前
|
算法 数据挖掘 数据处理
数据分析之可重复与独立样本的T-Test分析
数据分析之可重复与独立样本的T-Test分析
46 2
|
7月前
|
数据挖掘
SPSS两独立样本t检验
SPSS两独立样本t检验
168 0
|
机器学习/深度学习 算法 Python
python机器学习 train_test_split()函数用法解析及示例 划分训练集和测试集 以鸢尾数据为例 入门级讲解
python机器学习 train_test_split()函数用法解析及示例 划分训练集和测试集 以鸢尾数据为例 入门级讲解
3376 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参数,并使用上述数据集对象作为输入数据。
326 0
|
机器学习/深度学习 算法 数据可视化
机器学习避坑指南:训练集/测试集分布一致性检查
机器学习避坑指南:训练集/测试集分布一致性检查
机器学习避坑指南:训练集/测试集分布一致性检查
|
机器学习/深度学习 PyTorch Serverless
假设测试数据集test_data为随机生成的,并设置小批次。model神经网络已经训练好了,怎么用MSE来做测试
其中,model表示已经训练好的PyTorch模型,torch.rand()函数用于生成测试数据集,torch.split()函数用于将测试数据集分成小批次,model(batch)用于对小批次的输入数据进行预测,torch.cat()函数用于将所有小批次的预测值拼接在一起,最后使用mean_squared_error()函数计算均方误差。注意,在计算均方误差之前,需要将测试数据集和预测值转换为NumPy数组并将它们从GPU中移动到CPU上。
169 0
|
PyTorch 算法框架/工具
如何将x_data和y_data利用torch转换成小批量数据,并要求打乱数据,如何处理?
首先,使用TensorDataset将x_data和y_data合并到一个数据集中。然后,使用DataLoader创建一个迭代器,以便逐个处理每个小批量数据。在这里,batch_size设置为2,这意味着每个小批量将包含2个样本。shuffle参数设置为True,表示要对数据进行随机打乱。在遍历每个小批量数据时,可以在循环体内执行训练或评估操作。
185 0
ML之FE:基于load_mock_customer数据集(模拟客户,单个DataFrame)利用featuretools工具实现自动特征生成/特征衍生
ML之FE:基于load_mock_customer数据集(模拟客户,单个DataFrame)利用featuretools工具实现自动特征生成/特征衍生
ML之FE:基于load_mock_customer数据集(模拟客户,单个DataFrame)利用featuretools工具实现自动特征生成/特征衍生
|
机器学习/深度学习 算法 Python
pandas:数据离散化与离散化数据的后期处理(one-hot)
pandas:数据离散化与离散化数据的后期处理(one-hot)
pandas:数据离散化与离散化数据的后期处理(one-hot)