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

会发现结果不一样了

相关推荐
It's now13 分钟前
Spring AI 基础开发流程
java·人工智能·后端·spring
Glad_R20 分钟前
巧用AI流程图,让信息呈现更全面
人工智能·信息可视化·产品运营·流程图·产品经理
西南胶带の池上桜1 小时前
1.Pytorch模型应用(线性与非线性预测)
人工智能·pytorch·python
杀生丸学AI1 小时前
【无标题】VGGT4D:用于4D场景重建的视觉Transformer运动线索挖掘
人工智能·深度学习·3d·aigc·transformer·三维重建·视觉大模型
小和尚同志1 小时前
还在手动配置?这款开源软件让你一键配置 Claude Code 和 Codex
人工智能·aigc
阿正的梦工坊1 小时前
ProRL:延长强化学习训练,扩展大语言模型推理边界——NeurIPS 2025论文解读
人工智能·语言模型·自然语言处理
致Great1 小时前
Ollama 进阶指南
人工智能·gpt·chatgpt·agent·智能体
Nautiluss2 小时前
一起玩XVF3800麦克风阵列(八)
大数据·人工智能·嵌入式硬件·github·音频·语音识别
qq_430855882 小时前
线代第二章矩阵第四课:方阵的幂
算法·机器学习·矩阵