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

可以看到out[6]之前加载了随机数种子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)

会发现结果不一样了

相关推荐
charley.layabox1 小时前
8月1日ChinaJoy酒会 | 游戏出海高端私享局 | 平台 × 发行 × 投资 × 研发精英畅饮畅聊
人工智能·游戏
DFRobot智位机器人2 小时前
AIOT开发选型:行空板 K10 与 M10 适用场景与选型深度解析
人工智能
想成为风筝4 小时前
从零开始学习深度学习—水果分类之PyQt5App
人工智能·深度学习·计算机视觉·pyqt
F_D_Z4 小时前
MMaDA:多模态大型扩散语言模型
人工智能·语言模型·自然语言处理
大知闲闲哟4 小时前
深度学习G2周:人脸图像生成(DCGAN)
人工智能·深度学习
飞哥数智坊4 小时前
Coze实战第15讲:钱都去哪儿了?Coze+飞书搭建自动记账系统
人工智能·coze
wenzhangli74 小时前
低代码引擎核心技术:OneCode常用动作事件速查手册及注解驱动开发详解
人工智能·低代码·云原生
潘达斯奈基~5 小时前
大模型的Temperature、Top-P、Top-K、Greedy Search、Beem Search
人工智能·aigc
倔强青铜三6 小时前
苦练Python第18天:Python异常处理锦囊
人工智能·python·面试
倔强青铜三6 小时前
苦练Python第17天:你必须掌握的Python内置函数
人工智能·python·面试