python将数据集分为训练集测试集验证集
时间: 2024-05-13 18:09:52 浏览: 109
以下是一个将数据集分为训练集、测试集和验证集的Python脚本示例:
```python
import os
import random
import shutil
# 数据集所在目录
data_dir = '/path/to/dataset'
# 划分比例
train_ratio = 0.7
val_ratio = 0.2
test_ratio = 0.1
# 新建目录存放划分后的数据集
train_dir = os.path.join(data_dir, 'train')
val_dir = os.path.join(data_dir, 'val')
test_dir = os.path.join(data_dir, 'test')
os.makedirs(train_dir, exist_ok=True)
os.makedirs(val_dir, exist_ok=True)
os.makedirs(test_dir, exist_ok=True)
# 遍历数据集中的所有文件
for root, dirs, files in os.walk(data_dir):
for file in files:
# 随机生成一个0到1之间的浮点数
rand = random.random()
if rand < train_ratio:
# 将文件复制到训练集目录
shutil.copy(os.path.join(root, file), os.path.join(train_dir, file))
elif rand < train_ratio + val_ratio:
# 将文件复制到验证集目录
shutil.copy(os.path.join(root, file), os.path.join(val_dir, file))
else:
# 将文件复制到测试集目录
shutil.copy(os.path.join(root, file), os.path.join(test_dir, file))
```
该脚本首先定义了数据集所在目录和划分比例,然后新建了存放划分后数据集的目录。接着遍历数据集中的所有文件,随机生成一个0到1之间的浮点数,根据该浮点数将文件复制到训练集、验证集或测试集目录中。
阅读全文