网站首页 > 技术文章 正文
1. 图像数据集
import numpy as np
import matplotlib.pyplot as plot
from sklearn.model_selection import train_test_split
from PIL import Image
img_cnt, lbs_cnt = 100, 10 # 图像样本数, 类别数
height, width = 256, 256 #图像宽高
# 生成随机灰度图像数据集
image_list ={
'images':np.random.randint(0,256, size=(img_cnt, height, width), dtype=np.uint8),
'labels':np.random.randint(0, lbs_cnt, size=(img_cnt), dtype=np.int64)
}
# 打印数据集信息
print(f"总数据集数:{image_list['images'].shape}, \n第21个的标签值:{image_list['labels'][20]}")
# 拆分训练集和测试集
img_train, img_test, lbs_train, lbs_test = train_test_split(
image_list['images'], image_list['labels'], test_size=0.3, random_state=20
)
# 打印训练集和测试集数量
print(f"形状信息:\n训练集图片:{img_train.shape}, 测试集图片:{img_test.shape}\n训练集标签:{lbs_train.shape}, 测试集标签:{lbs_test.shape}")
# 显示第21个图片
img = Image.fromarray(image_list['images'][20])
plot.imshow(img, cmap='gray')
plot.show()
2. 文本数据集
import random
import string
from sklearn.model_selection import train_test_split
# 设置随机种子以确保结果可复现
random.seed(40)
count = 100 # 文本总数
max_len = 100 # 单文本最大长度
# 生成随机文本数据集
text_list = []
for _ in range(count):
text, text_len = '', random.randint(0, max_len) # 随机生成文本长度
for _ in range(text_len):
text += random.choice(string.ascii_letters) # 随机生成字符串
text_list.append(text)
# 打印数据集信息
print(f"总数据集数:{len(text_list)}, \n第20个数据长度:{len(text_list[2])},内容:{text_list[20]}")
0
# 拆分训练集和测试集
train, test = train_test_split(text_list, test_size=0.3, random_state=20)
# 打印训练集和测试集数量
print(f"训练集数:{len(train)}, 测试集数:{len(test)}")
3. 函数说明
3.1 sklearn.model_selection.train_test_split
train_test_split(*arrays, test_size=None, train_size=None, random_state=None, shuffle=True, stratify=None)【官网地址】
作用:
o 将数组或矩阵拆分为随机的训练和测试子集。
参数:
o *arrays:具有相同长度/形状的可索引项序列,列表、numpy数组、scipy稀疏矩阵或pandas数据帧
o test_size:float或int,默认值=无
如果为浮点数,则应介于0.0和1.0之间,并表示要包含在测试分割中的数据集的比例。如果为int,则表示测试样本的绝对数量。如果为“无”,则将该值设置为训练样本的补码。如果train_size也为None,则将其设置为0.25。
o train_size:float或int,默认值=无
如果为浮点数,则应介于0.0和1.0之间,并表示要包含在序列分割中的数据集的比例。如果为int,则表示训练样本的绝对数量。如果为“无”,则该值会自动设置为测试大小的补码。
o random_state:int,RandomState实例或None,默认值=None
控制在应用拆分之前应用于数据的洗牌。传递一个int,以便在多个函数调用之间进行可重复的输出。请参阅术语表。
o shuffle :bool,默认值为True
是否在拆分前对数据进行洗牌。如果shuffle=False,则分层必须为None。
o stratify :类似数组,默认值=无
如果不是None,则以分层方式分割数据,将其用作类标签。阅读用户指南中的更多内容。
返回值:
o 列表,长度=2*len(arrays),包含训练集-测试集输入拆分的列表。
如果输入是稀疏的,则输出将是scipy.sparse.csr_matrix。否则,输出类型与输入类型相同。
3.2 常用随机函数
o numpy.random 库【官方地址】
numpy.random.rand(d0,d1,…,dn):根据给定维度生成[0,1)之间的数据
numpy.random.randn(d0,d1,…,dn):返回标准正态分布中一个或多个样本值
numpy.random.randint(low, high=None, size=None, dtype=int):从“半开”区间[low,high)中指定数据类型的“离散均匀”分布返回随机整数。如果high为None(默认值),则结果来自[0,low)。
numpy.random.random(size=None):返回[0.0,1.0)中随机浮点数
numpy.random.choice(a, size=None, replace=True, p=None):返回给定的序列中的随机样本
numpy.random.sample():这是random_sample的别名
numpy.random.random_sample(size=None):返回半开区间[0.0,1.0)中的随机浮点数。
o random 库
random.seed(a, version):以一个数字作为开头(种子值)生成随机数,两次使用相同的种子值,将得到两次相同的随机数。
random.random():随机生成一个[0,1)范围内的实数
random.randint(start, stop):返回指定范围的一个整数
random.randrange(start=0, stop, step=1):返回指定范围内随机选择的样本
random.choice(sequence):返回指定序列中随机的一个样本
random.choices(sequence, weights=None, cum_weights=None, k=1):返回指定序列中随机选择的一个列表元素。
random.sample(sequence, k):返回序列中随机选择的指定数量元素。
猜你喜欢
- 2025-05-26 零起点Python机器学习快速入门-8-2-联合循环电厂CCPP数据集切割
- 2025-05-26 七爪源码:在 Python 中创建数据集的自动化(使用 Pandas)
- 2025-05-26 AI算法之怎么利用Python实现处理小型数据集的线性回归算法
- 05-27程序员用 Python 爬取抖音高颜值美女
- 05-27YOLO v3、FaceNet和SVM的人脸检测识别系统源码(python)分享
- 05-27「工具推荐」世界上最简单的人脸识别库 44.7 star
- 05-27开源人脸识别系统源码推荐
- 05-27Go 人脸识别教程
- 05-27Python 深度学习之人脸识别(yolo+facenet)
- 05-27简单的Py人脸识别
- 05-27Python编程 - 基于OpenCV实现人脸识别(实践篇)爬虫+人脸识别
- 257℃Python短文,Python中的嵌套条件语句(六)
- 257℃python笔记:for循环嵌套。end=""的作用,图形打印
- 256℃PythonNet:实现Python与.Net代码相互调用!
- 251℃Python操作Sqlserver数据库(多库同时异步执行:增删改查)
- 251℃Python实现字符串小写转大写并写入文件
- 106℃原来2025是完美的平方年,一起探索六种平方的算吧
- 91℃Python 和 JavaScript 终于联姻了!PythonMonkey 要火?
- 82℃Ollama v0.4.5-v0.4.7 更新集合:Ollama Python 库改进、新模型支持
- 最近发表
- 标签列表
-
- python中类 (31)
- python 迭代 (34)
- python 小写 (35)
- python怎么输出 (33)
- python 日志 (35)
- python语音 (31)
- python 工程师 (34)
- python3 安装 (31)
- python音乐 (31)
- 安卓 python (32)
- python 小游戏 (32)
- python 安卓 (31)
- python聚类 (34)
- python向量 (31)
- python大全 (31)
- python次方 (33)
- python桌面 (32)
- python总结 (34)
- python浏览器 (32)
- python 请求 (32)
- python 前端 (32)
- python验证码 (33)
- python 题目 (32)
- python 文件写 (33)
- python中的用法 (32)