抽取不同文件夹数据划分为训练集测试集
时间: 2024-04-08 15:33:06 浏览: 144
事件抽取数据集
5星 · 资源好评率100%
要将不同文件夹中的数据划分为训练集和测试集,您可以按照以下步骤进行操作:
1. 首先,确定您的文件夹结构和数据组织方式。假设您有一个名为"data"的文件夹,其中包含多个子文件夹,每个子文件夹代表一个类别,并包含相应类别的数据。
2. 导入所需的库,例如Python中的os库。
3. 使用os库中的函数列出"data"文件夹中的子文件夹列表:
```python
import os
data_folder = 'data'
subfolders = os.listdir(data_folder)
```
4. 创建用于存储训练集和测试集的文件夹。您可以根据需要进行更改,例如将它们创建在"data"文件夹下的新文件夹中:
```python
train_folder = os.path.join(data_folder, 'train')
test_folder = os.path.join(data_folder, 'test')
os.makedirs(train_folder, exist_ok=True)
os.makedirs(test_folder, exist_ok=True)
```
5. 针对每个子文件夹,将数据划分为训练集和测试集,并将其复制到相应的文件夹中。您可以根据需要调整训练集和测试集的比例,例如80%用于训练,20%用于测试:
```python
import random
import shutil
train_ratio = 0.8
for subfolder in subfolders:
subfolder_path = os.path.join(data_folder, subfolder)
files = os.listdir(subfolder_path)
random.shuffle(files) # 随机打乱文件顺序
train_size = int(len(files) * train_ratio)
train_files = files[:train_size]
test_files = files[train_size:]
for file in train_files:
shutil.copyfile(os.path.join(subfolder_path, file), os.path.join(train_folder, subfolder, file))
for file in test_files:
shutil.copyfile(os.path.join(subfolder_path, file), os.path.join(test_folder, subfolder, file))
```
这样,您的数据就被划分为训练集和测试集,并按类别存储在相应的文件夹中。
请注意,这只是一个示例代码,您可以根据实际情况进行修改和定制。另外,此示例假设您的数据文件夹中只包含文件,如果有文件夹嵌套的情况,您可能需要递归地遍历文件夹。
阅读全文