【机器学习】scikit-learn机器学习中随机数种子的应用与重现

随机数种子是为了能重现某一次实验生成的随机数而设立的,相同的随机数种子下,生成的随机数序列一样

一、随机数种子基础应用

在python中简单运用随机数种子

csharp 复制代码
import random
random.seed(1)
a = random.sample(range(0,100),10)
random.seed(2)
b = random.sample(range(0,100),10)

结果如下

csharp 复制代码
a
Out[3]: [17, 72, 97, 8, 32, 15, 63, 57, 60, 83]
b
Out[4]: [7, 11, 10, 46, 21, 94, 85, 39, 32, 77]
random.seed(1)//加载随机数种子
random.sample(range(0,100),10)
Out[6]: [17, 72, 97, 8, 32, 15, 63, 57, 60, 83]

可以看到out6之前加载了随机数种子1之后可以重现第一次随机数的生成结果

二、随机数种子在scikit-learn中的应用(以鸢尾花为例)

注:以下代码需要在你的环境中先行安装scikit-learn工具包

具体方法可以参考https://blog.csdn.net/quicmous/article/details/106824638

首先scikit-learn中鸢尾花的数据集需要我们进行拆分,将其拆分为训练集和测试集。在这里需要将原数据进行随机拆分:

csharp 复制代码
from sklearn import datasets
X=iris.data[:,[2,3]]
y=iris.target
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=1)

X,y分别为原数据与标签,0.3指的是把X和y随机分为30%的测试数据和70%的训练数据

这里的随机数种子参数为random_state

在未来想要重新获取X_train, X_test, y_train, y_test的时候可以再次调用以下语句

csharp 复制代码
train_test_split(X, y, test_size=0.3, random_state=1)

例子:

csharp 复制代码
X_train1, X_test1, y_train1, y_test1 = train_test_split(X, y, test_size=0.3, random_state=1)

检验新生成的数据和同样的随机数种子下生成的数据是否一样,可以自行运行程序发现是一样的

如果将random_state设置成1以外的数

csharp 复制代码
X_train2, X_test2, y_train2, y_test2 = train_test_split(X, y, test_size=0.3, random_state=2)

会发现结果不一样了

相关推荐
深圳雨林凯AI11 分钟前
商品详情长图的自动生成:版块模板、要素抽取与版式约束的实现思路
人工智能·ai
lisw0514 分钟前
迁移学习(Transfer Learning):概念、历史、内容、挑战与展望
人工智能·机器学习·迁移学习
炫酷的大高个24 分钟前
98% 连跑 20 次只剩 67%,我算了大模型重试账
人工智能·架构·开源
可乐ea31 分钟前
智能体的模型列表为什么要从三处来源合成:一次让 GPT-6.1 Sol 选不上的发布延迟
人工智能·gpt·chatgpt·智能体框架·模型列表·多源数据合成·客户端工程
freewebsys38 分钟前
【原始POSTMAN】最老一个版本的postman 大家还记得吗?官方已经不支持没有升级了,下载了组件用AI直接升级了下可以使用了!
人工智能
云南新人和数采集团1 小时前
云南靠谱软件开发公司选型指南:以昆明新腾科技为例
大数据·人工智能·科技
发现你走远了2 小时前
05-权限不是开关:工具调用如何在放行、拦截与追问之间做决定
人工智能·agent·claude
AllData公司负责人2 小时前
AI大模型数据开发底座系列说明书:AllData集成DB-GPT开源项目建设 AI 多模态分析底座,涵盖模态解析/智能大屏/MCP 扩展!
大数据·数据库·人工智能·gpt·数据采集·数据接入·模态解析
syyjhchou3 小时前
自己搭企业内部中转站,怎么让请求更容易命中缓存
人工智能·后端·语言模型·aigc
张然Adolf3 小时前
人工智能电力系统应用新手实战指南
人工智能