【机器学习】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)

会发现结果不一样了

相关推荐
科技苑11 分钟前
如何用Python编程实现一个简单的Web爬虫?
人工智能·python
迅利科技24 分钟前
新能源汽车零部件研发,SIMULIA一站式仿真解决方案如何缩短研发周期
人工智能·汽车
Databuff1 小时前
AI SSH工具,集齐SSH、SFTP、知识库RAG、AI助手
网络·人工智能·ssh
Blockchina1 小时前
从一篇文章到一条完整视频:用 Codex 搭建可复用的 AI 视频生产线
人工智能
Proaiapi2 小时前
一张图介绍gpt-image-2.5
人工智能·gpt
czxxxc2 小时前
当AI开始“动手”:一场从“会说”到“会做”的静默转折
人工智能
北京盟通科技官方账号2 小时前
高通 IQ-9075 部署 EC-Master 实战指南:环境构建与实时 Linux (RT) 系统烧录
人工智能·机器人·yocto·ethercat·ecmaster·盟通科技·rt kernel
FlyWIHTSKY2 小时前
cex和dex都是如何与链上交互的
人工智能
汇智信科2 小时前
全域感知,协同智管 —— 智能矿山综合管控平台
人工智能·汇智信科
熊猫钓鱼>_>3 小时前
免费域名的隐秘陷阱与网站稳定部署实战:火山引擎到底行不行?
人工智能·ai·llm·域名·火山引擎·引擎·火山