用python脚本自动把数据集分成训练集和测试集
时间: 2023-06-27 11:07:26 浏览: 189
可以使用Python中的random模块来实现数据集的随机分割。以下是一个简单的示例脚本,将数据集按照指定比例随机分割成训练集和测试集:
```python
import random
import os
import shutil
# 设置随机种子,以保证每次运行结果一致
random.seed(123)
# 数据集路径
data_dir = "data/"
# 分割比例
train_ratio = 0.8
# 创建训练集和测试集目录
train_dir = os.path.join(data_dir, "train/")
test_dir = os.path.join(data_dir, "test/")
os.makedirs(train_dir, exist_ok=True)
os.makedirs(test_dir, exist_ok=True)
# 遍历数据集文件夹
for filename in os.listdir(data_dir):
if not os.path.isfile(os.path.join(data_dir, filename)):
continue
# 根据分割比例随机分配到训练集或测试集
if random.random() < train_ratio:
dest_dir = train_dir
else:
dest_dir = test_dir
# 复制文件到对应的目录
shutil.copy(os.path.join(data_dir, filename), os.path.join(dest_dir, filename))
```
该脚本会将`data/`目录下的所有文件随机分配到训练集或测试集中,并将结果保存到`train/`和`test/`目录中。其中,`random.seed(123)`语句设置了随机种子,以保证每次运行结果一致;`os.makedirs(train_dir, exist_ok=True)`语句创建了训练集和测试集目录;`shutil.copy`语句用于复制文件到对应的目录。
阅读全文