Random seed(随机种子)

在机器学习领域中,有很多的操作和算法带有一定的随机性,因此在复现时,如果涉及到这些操作或算法,结果就可能产生差异,以下是常见的带有随机性的一些操作和算法:

  1. 神经网络中的权重初始化。
  2. 聚类算法,例如:K-means算法的初始聚类中心。
  3. 随机森林算法中涉及到的数据或特征抽样。
  4. 在整体数据集中,随机抽取样本组成的训练集和测试集。

当需要复现带有一定随机性的一些操作和算法时,就需要用到随机种子来固定随机的结果。

随机数:就是指专门针对的随机试验的结果。

如果想要获得真正的随机数,就需要针对随机数的定义,通过外置的观测设备,观测记录某个真正的随机试验的结果,例如:抛硬币、抛骰子。但是以上操作非常的不方便,所以为了解决这个问题,在计算机内部通常使用伪随机数方法。计算机程序中有很多种生成伪随机数的方法,其中一种常用的方法是利用伪随机数生成器(PRNG)。

以下是一种简单的PRNG方法:

将伪随机数生成器看作是一个转换函数f(x),在生成的起始向伪随机数生成器输入x1,当输入x1后通过转换函数f(x)得到第一个随机数y1。接下来再把y1输入到转换函数f(x)中,就可以得到第二个随机数y2。如此一直重复下去,就可以得到一个伪随机数序列。

当然,以上的算法仅仅是一个简单的参考示例,实际中的随机数生成程序要复杂的多。

对于这个伪随机数生成程序,可以发现如果初始输入的x1是相同的,那么得到的随机序列就是相同的,因此我们将这个初始的x1称作随机种子。

所以在计算机中使用的诸如PRNG等伪随机数生成器生成的序列并不是真随机序列,它完全由输入的初始值决定,这个初始值被称为随机种子(random seed)。因此,面对一个随机操作,只要运行环境一致并保证伪随机数生成程序相同,此时设定随机种子一致就可以复现结果。

From:https://www.zhihu.com/question/413925742/answer/1821110273

在Python中,使用random.seed()来设置随机种子。

random.seed() : 会改变随机生成器的种子,传入的数值用于指定随机数生成时所用算法开始时所选定的整数值。如果使用相同的seed值,则每次生成的随机数都相同。如果不设置这个值,则系统会根据当前系统时间来自己选择这个值,此时每次生成的随机数会因为时间的差异而有所不同。

例如:

1.当不使用random.seed()时,每次生成的随机数不同。

2.当使用random.seed()时,每次生成的随机数相同。

3.通过这段程序可以发现,使用random.seed()设定的随机种子仅有一次有效。

(Python 3)Random seed 随机种子相关推荐

  1. python中random.seed(1)_Python-random.seed()

    写在前面的话: 第一次在该平台写东西,而且还是写自己不熟悉的东西哈哈哈. 最近不知道为什么突然对Python很感兴趣,以致于在大后天就要考试的此刻还是想来码一篇关于Python的random.seed ...

  2. SEED随机种子详解

    随机种子作用 在神经网络中,参数默认是进行随机初始化的.不同的初始化参数往往会导致不同的结果,当得到比较好的结果时我们通常希望这个结果是可以复现的,在pytorch中,通过设置随机数种子也可以达到这么 ...

  3. python如何设置随机种子_如何在Python中设置全局随机种子

    与R一样,我希望为整个脚本/会话全局设置随机种子,而不是每次执行函数或运行模型时都必须调用随机种子函数.我知道sci kit learn使用的是numpy RNG,但也无法找到一种将其设置为全局的方法 ...

  4. python np.random.seed直观程序理解

    permutation(len)返回0~len的一个全排列 第一个程序: import numpy as np# np.random.seed(42) ls = np.random.permutati ...

  5. python和matlab的随机种子是一样的吗_matlab中利用不同的随机数种子获取的样本是统一分布吗?...

    展开全部 一.Matlab在一个集合中随机取数:function 'randperm' for example: a=[1 2 3 4 5 6 7 8 9 10]; b=a(randperm(leng ...

  6. 以我的世界视角来理解seed的随机种子

    以我的世界视角理解seed随机种子 你玩过我的世界吗? 如果你的回答是玩过,那么理解seed随机种子就十分简单了 其实seed随机种子就像我的世界生成世界的种子: randn,rand,uniform ...

  7. os.environ()和yolov7里面随机种子设定

    一.os.environ()介绍: 在 python 中通过 os.environ 可以获取有关系统的各种信息. 通过 os.environ 获取环境变量,什么是环境变量呢?环境变量是程序和操作系统之 ...

  8. Python 里的随机种子random.seed()

    一.带有随机性的实验 常见的带有随机性的一些算法及处理步骤: (1)神经网络当中的初始化权重. (2)聚类算法,例如K-means算法的初试聚类中心: (3)随机森林中牵涉到的数据或特征抽样: (4) ...

  9. Python语言学习:三种随机函数random.seed()、numpy.random.seed()、set_random_seed()及random_normal的简介、使用方法(固定种子)详细攻略

    Python语言学习:三种随机函数random.seed().numpy.random.seed().set_random_seed()及random_normal的简介.使用方法(固定种子)之详细攻 ...

最新文章

  1. 并发基础(十) 线程局部副本ThreadLocal之正解
  2. 前端学习(2564):如何触发组件的更新
  3. vue-promise-axios
  4. 深度学习(00)——GPU版本的TensorFlow
  5. 整理读研期间用过、改进过、写过的代码
  6. linux uuid挂载磁盘_Linux磁盘设备磁盘设备的UUID标识代码(sda,sdb,sdc…)变化的解决办法...
  7. android 常用依赖库
  8. What is Dymola?---Dymola的特点和架构
  9. Android GMS 包。 GOOGLE play
  10. AssertionError: Override list has odd length: [‘\r‘]; it must be a list of pairs
  11. 把手机作为网站服务器,如何利用废旧手机打造网站服务器
  12. 密码学常见基本概念-随机数,伪随机数产生器
  13. 交换机级联,堆叠,集群技术介绍
  14. [WHS] Windows Home Server 官方中文站点上线
  15. 详细了解软件测试过程中的V 模型,W模型,H模型
  16. 微软控诉四大PC品牌经销商
  17. Android 进阶:网络图片加载 - Glide篇
  18. java jdk 7 64位_jdk1.7 64位下载-jdk7 64位(Java SE Development Kit 7)下载 7u80 官方正式版-IT猫扑网...
  19. 注解@Autowired与@Resource的区别
  20. 图片上传到七牛云存储空间

热门文章

  1. java反射 获取Object属性值
  2. 2019CCSU第二次校赛部分题解(A,B,E,G)
  3. 介绍一下逻辑地址和物理地址
  4. Kyyyyyy 动态规划入门 简单到噗噗捏捏题
  5. 室内定位导航技术,电厂人员安全管理
  6. 机器学习基石HOW部分(3)
  7. 计算机技术掌握方法心有体会,计算机科学与技术学习心得 (5)
  8. pyTorch学习基础一选择CPU和GPU
  9. 平方矩阵 I II III 题解
  10. Git常用操作(清除工作区未跟踪文件、保存和恢复进度、打标签)