在Python中生成测试集通常涉及以下步骤:
导入必要的库
```python
import os
import shutil
import random
import numpy as np
from sklearn.model_selection import train_test_split
定义数据集划分函数
```python
def split_dataset(input_address, output_address, train_ratio):
获取所有文件路径
file_paths = glob.glob(os.path.join(input_address, '*'))
随机选择文件作为测试集
test_files = random.sample(file_paths, int(len(file_paths) * train_ratio))
划分训练集和测试集
train_files = [file for file in file_paths if file not in test_files]
创建输出目录
os.makedirs(output_address, exist_ok=True)
复制文件到对应的训练集和测试集目录
for file_path in train_files:
shutil.copy(file_path, os.path.join(output_address, 'train'))
for file_path in test_files:
shutil.copy(file_path, os.path.join(output_address, 'test'))
使用函数划分数据集
```python
input_address = 'path/to/your/dataset'
output_address = 'path/to/output/dataset'
train_ratio = 0.7 70%训练集,30%测试集
split_dataset(input_address, output_address, train_ratio)
以上代码定义了一个`split_dataset`函数,该函数接受输入数据集的路径、输出数据集的路径以及训练集的比例。函数会随机选择一部分文件作为测试集,其余的作为训练集,并将它们复制到相应的输出目录中。
请注意,这个函数假设你的数据集已经按照类别分好了文件夹,并且每个文件夹中包含相同类型的图片。如果数据集结构不同,你可能需要调整代码以适应你的具体情况。