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

会发现结果不一样了

相关推荐
爱的叹息13 分钟前
关于 传感器 的详细解析,涵盖定义、分类、工作原理、常见类型、应用领域、技术挑战及未来趋势,结合实例帮助理解其核心概念
人工智能·机器人
恶霸不委屈15 分钟前
突破精度极限!基于DeepSeek的无人机航拍图像智能校准系统技术解析
人工智能·python·无人机·deepseek
lixy5791 小时前
深度学习之自动微分
人工智能·python·深度学习
量子位1 小时前
飞猪 AI 意外出圈!邀请码被黄牛倒卖,分分钟搞定机酒预订,堪比专业定制团队
人工智能·llm·aigc
量子位1 小时前
趣丸科技贾朔:AI 音乐迎来应用元年,五年内将重构产业格局|中国 AIGC 产业峰会
人工智能·aigc
量子位1 小时前
粉笔 CTO:大模型打破教育「不可能三角」,因材施教真正成为可能|中国 AIGC 产业峰会
人工智能·aigc
神经星星1 小时前
【TVM教程】microTVM TFLite 指南
人工智能·机器学习·编程语言
Listennnn1 小时前
GPT,Bert类模型对比
人工智能·gpt·自然语言处理·bert
量子位1 小时前
最强视觉生成模型获马斯克连夜关注,吉卜力风格转绘不再需要 GPT 了
人工智能·llm
arbboter2 小时前
【AI插件开发】Notepad++ AI插件开发实践:实现对话窗口功能
人工智能·notepad++·notepad++插件开发·ai对话窗口·异步模型调用·实时输出渲染·动态模型切换