使用python划分训练数据集

简介: 使用python划分训练数据集

划分数据集


在实现机器学习的过程中,训练集是用来训练模型的,给模型输入和对应的输出,让模型学习它们之间的关系。


验证集是用来估计模型的训练水平,比如分类器的分类精确度,预测的误差等,我们可以根据验证集的表现来选择最好的模型。


划分数据集功能描述:将一个大数据集按比例划分为训练集和验证集(如下图)


代码:

#split_data.py
# 划分数据集flower_data,数据集划分到flower_datas中,训练验证比例为8:2
import os
from shutil import copy
import random
def mkfile(file):
    if not os.path.exists(file):
        os.makedirs(file)
# 获取data文件夹下所有文件夹名(即需要分类的类名)
#划分数据集flower_data,数据集划分到flower_datas中
file_path = 'F:/gao/data/flower_data'
new_file_path = 'F:/gao/data/flower_datas'
# 划分比例,训练集 : 验证集 = 8 : 2
split_rate = 0.2
data_class = [cla for cla in os.listdir(file_path)]
train_path = new_file_path + '/train/'
val_path = new_file_path + '/val/'
# 创建 训练集train 文件夹,并由类名在其目录下创建子目录
mkfile(new_file_path)
for cla in data_class:
    mkfile(train_path + cla)
# 创建 验证集val 文件夹,并由类名在其目录下创建子目录
mkfile(new_file_path)
for cla in data_class:
    mkfile(val_path + cla)
# 遍历所有类别的全部图像并按比例分成训练集和验证集
for cla in data_class:
    cla_path = file_path + '/' + cla + '/'  # 某一类别的子目录
    images = os.listdir(cla_path)  # iamges 列表存储了该目录下所有图像的名称
    num = len(images)
    eval_index = random.sample(images, k=int(num * split_rate))  # 从images列表中随机抽取 k 个图像名称
    for index, image in enumerate(images):
        # eval_index 中保存验证集val的图像名称
        if image in eval_index:
            image_path = cla_path + image
            new_path = val_path + cla
            copy(image_path, new_path)  # 将选中的图像复制到新路径
        # 其余的图像保存在训练集train中
        else:
            image_path = cla_path + image
            new_path = train_path + cla
            copy(image_path, new_path)
        print("\r[{}] processing [{}/{}]".format(cla, index + 1, num), end="")  # processing bar
    print()
print("processing done!")


注意:


只需要修改file_path(源文件夹)和new_file_path(新生成的文件夹)

其次是修改split_rate(split_rate=0.2就是训练集:验证集=8:2)

)和new_file_path(新生成的文件夹)

其次是修改split_rate(split_rate=0.2就是训练集:验证集=8:2)



相关文章
|
2月前
|
数据采集 Python
Python实用记录(七):通过retinaface对CASIA-WebFace人脸数据集进行清洗,并把错误图路径放入txt文档
使用RetinaFace模型对CASIA-WebFace人脸数据集进行清洗,并将无法检测到人脸的图片路径记录到txt文档中。
43 1
|
2月前
|
Python
蓝桥杯练习题(一):Python组之入门训练题
这篇文章是关于蓝桥杯Python组的入门训练题,包括Fibonacci数列、圆的面积、序列求和和A+B问题的具体代码实现和样例输出。
136 0
|
28天前
|
机器学习/深度学习 算法 PyTorch
用Python实现简单机器学习模型:以鸢尾花数据集为例
用Python实现简单机器学习模型:以鸢尾花数据集为例
73 1
|
2月前
|
存储 机器学习/深度学习 算法
蓝桥杯练习题(三):Python组之算法训练提高综合五十题
蓝桥杯Python编程练习题的集合,涵盖了从基础到提高的多个算法题目及其解答。
80 3
蓝桥杯练习题(三):Python组之算法训练提高综合五十题
|
2月前
|
数据可视化 数据挖掘 大数据
Python 数据分析入门:从零开始处理数据集
Python 数据分析入门:从零开始处理数据集
|
3月前
|
机器学习/深度学习 Python
9-3|使用Python的scikit-learn库来训练一个逻辑回归模型,检测句子是否含有侮辱性内容:
9-3|使用Python的scikit-learn库来训练一个逻辑回归模型,检测句子是否含有侮辱性内容:
|
4月前
|
数据可视化 数据挖掘 索引
【python】Python马铃薯批发市场交易价格数据分析可视化(源码+数据集)【独一无二】
【python】Python马铃薯批发市场交易价格数据分析可视化(源码+数据集)【独一无二】
113 0
|
4月前
|
Python
python 随机划分图片数据集以及移动标注
这篇文章提供了一个Python脚本,用于随机划分图片数据集为训练集和测试集,并将对应的标注文件移动到相应的子文件夹中,以减少训练使用的数据量。
|
4月前
|
机器学习/深度学习 数据采集 数据可视化
【python】python心理健康医学数据分析与逻辑回归预测(源码+数据集+论文)【独一无二】
【python】python心理健康医学数据分析与逻辑回归预测(源码+数据集+论文)【独一无二】
|
4月前
|
数据采集 数据可视化 数据处理
【Python】Python化妆品评论贝叶斯情感分析可视化(源码+数据集)【独一无二】
【Python】Python化妆品评论贝叶斯情感分析可视化(源码+数据集)【独一无二】