【问题标题】:Random number seed in numpynumpy中的随机数种子
【发布时间】:2016-12-26 21:42:29
【问题描述】:
numpy.random.seed(7)

在不同的机器学习和数据分析教程中,我看到这个种子集具有不同的数字。选择特定的种子编号是否有真正的区别?或者任何数字都可以?选择种子数的目标是相同实验的可重复性。

【问题讨论】:

  • 是的,任何数字都可以。这只是为了重现性。
  • 没有区别吗?有些人使用很大的数字,有些人使用很小的数字。那么为什么不在实现中使用带有默认种子的 numpy.random.seed() 函数呢?用户不必向其中传递种子。恐怕种子有用。

标签: numpy random-seed


【解决方案1】:

每次运行程序时,提供相同的种子都会产生相同的结果。这在开发/测试过程中很有用,可以一遍又一遍地可靠地获得相同的结果。

当您的应用“投入生产”时,将种子源更改为动态的,例如当前时间(或不太可预测的时间)以具有“典型的随机行为”。如果您不提供种子,许多生成器将默认设置为自某个纪元以来的当前时间(以毫秒为单位)。

实际数字无关紧要。我使用我的学校 ID 号(9 位数字),只是出于习惯,因为我已经完全记住了它,但如果我希望它是可重复的,也可以使用简短的 2 位数字进行快速测试。

【讨论】:

  • 在生产中,为什么你还需要这个随机数,因为你不需要得到相同的结果?
  • 学校 ID 太长。只使用'0'或'1'?
  • @user697911 在许多语言/库中,如果您不提供数字,它将默认为当前时间。如果您正在编写诸如彩票软件之类的默认行为可以使随机数可预测的东西,这可能会很危险;特别是如果最终用户知道/可以猜到随机数源是什么。
  • @user697911 是的,你可以使用任何号码。我只是按 ID 使用,因为这是我多年来测试过的种子。这是任意的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-07
  • 2022-08-03
  • 2020-03-12
  • 2013-05-28
  • 1970-01-01
  • 2014-10-03
  • 2020-02-21
相关资源
最近更新 更多