用python脚本自动将数据集自动分为训练集、测试集、验证集
时间: 2023-12-02 11:03:00 浏览: 82
可以使用Python中的random模块,按照一定比例将数据集分为训练集、测试集、验证集。下面是一个示例代码:
```python
import random
import os
import shutil
# 设置随机种子
random.seed(2021)
# 数据集所在目录
data_dir = "/path/to/dataset"
# 分割比例
train_ratio = 0.7
val_ratio = 0.2
test_ratio = 0.1
# 创建保存目录
if not os.path.exists("train"):
os.makedirs("train")
if not os.path.exists("val"):
os.makedirs("val")
if not os.path.exists("test"):
os.makedirs("test")
# 遍历数据集目录下的所有文件
for file_name in os.listdir(data_dir):
# 忽略目录
if os.path.isdir(os.path.join(data_dir, file_name)):
continue
# 随机分配到训练集、验证集、测试集
rand = random.random()
if rand < train_ratio:
save_dir = "train"
elif rand < train_ratio + val_ratio:
save_dir = "val"
else:
save_dir = "test"
# 复制文件到对应目录
src_path = os.path.join(data_dir, file_name)
dst_path = os.path.join(save_dir, file_name)
shutil.copyfile(src_path, dst_path)
```
这个代码假设数据集文件都在同一个目录下,可以根据自己的需求进行修改。其中分割比例可以自己定义,这里采用了训练集占70%,验证集占20%,测试集占10%的比例。
阅读全文