python数据集分割代码
时间: 2023-10-14 08:20:49 浏览: 243
数据集分割通常是指将一个大的数据集划分成训练集、验证集和测试集三个部分。下面是一个简单的 Python 代码示例,用于将数据集按指定比例分割成训练集、验证集和测试集。
```python
import os
import random
import shutil
# 数据集路径
dataset_dir = 'path/to/dataset'
# 训练集、验证集和测试集所占比例
train_ratio = 0.7
val_ratio = 0.2
test_ratio = 0.1
# 新建存放划分后数据集的文件夹
if not os.path.exists('path/to/split_dataset'):
os.mkdir('path/to/split_dataset')
# 遍历数据集文件夹中的所有文件
files = os.listdir(dataset_dir)
random.shuffle(files)
# 计算划分后各个部分的文件数量
total_num = len(files)
train_num = int(total_num * train_ratio)
val_num = int(total_num * val_ratio)
test_num = total_num - train_num - val_num
# 将文件按顺序分割成训练集、验证集和测试集,并复制到新的文件夹中
for i, file in enumerate(files):
if i < train_num:
shutil.copy(os.path.join(dataset_dir, file), 'path/to/split_dataset/train')
elif i < train_num + val_num:
shutil.copy(os.path.join(dataset_dir, file), 'path/to/split_dataset/val')
else:
shutil.copy(os.path.join(dataset_dir, file), 'path/to/split_dataset/test')
```
在上述代码中,`dataset_dir` 是指原始数据集所在的文件夹路径,`train_ratio`、`val_ratio` 和 `test_ratio` 分别是训练集、验证集和测试集所占比例。代码使用了 Python 内置的 `random.shuffle` 函数来随机打乱数据集中的文件顺序,然后按照指定比例划分成三个部分,并将划分后的文件复制到新的文件夹中。请注意修改代码中的路径信息以适应自己的数据集目录结构。
阅读全文