例如在R语言中,rnorm()函数为随机生成多个随机数,每次使用都会得到不同的结果
> rnorm(3) [1] -2.0235077 0.3552526 0.6239982 > rnorm(3) [1] 1.101044 -1.297740 1.717356
如果我们想要让结果复现的话,就需要设定生成随机数的种子
> set.seed(1) #设定种子1
> rnorm(3) [1] -0.6264538 0.1836433 -0.8356286
> set.seed(11) #设定种子11
> rnorm(3) [1] -0.59103110 0.02659437 -1.51655310
> set.seed(1) #复现结果1
> rnorm(3) [1] -0.6264538 0.1836433 -0.8356286
需要注意,我们想要复现结果时,需要再次运行set.seed()并把种子数值保持一致。如果seed数值不一致也就不能复现结果。
那么seed数值的选择有什么用?set.seed(1)和set.seed(1000)的区别是什么?
关于这个问题,有一个类似回答:https://stackoverflow.com/questions/23511853/set-seed-function-what-is-the-best-value-for-setting-a-seed
种子的唯一真正好处是使随机结果具有复现性。至于seed数值的设置一般来说没有偏好。它们只是为伪随机生成器提供一个具体的种子,而不是在系统中使用一些熵。set.seed(1000)也不是运行1000次,而是把种子设置成1000。
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!