numpy.random.seed(0)有什么作用?
np.random.seed
Scikit-Learn教程的以下代码在做什么?我对NumPy的随机状态生成器不太熟悉,所以我非常感谢外行对此的解释。
np.random.seed(0)
indices = np.random.permutation(len(iris_X))
-
np.random.seed(0)
使随机数可预测>>> numpy.random.seed(0) ; numpy.random.rand(4) array([ 0.55, 0.72, 0.6 , 0.54]) >>> numpy.random.seed(0) ; numpy.random.rand(4) array([ 0.55, 0.72, 0.6 , 0.54])
重置种子(每次)后,每次都会出现一组 相同 的数字。
如果未重置随机种子,则每次调用都会显示 不同的 数字:
>>> numpy.random.rand(4) array([ 0.42, 0.65, 0.44, 0.89]) >>> numpy.random.rand(4) array([ 0.96, 0.38, 0.79, 0.53])
(伪)随机数的工作方式是从一个数字(种子)开始,将其乘以一个大数字,加上一个偏移量,然后对该和取模。然后将所得的数字用作种子,以生成下一个“随机”数字。设置种子时(每次),每次都会执行相同的操作,并为您提供相同的编号。
如果您希望看似随机数,请不要设置种子。但是,如果您使用的代码使用要调试的随机数,则在每次运行之前设置种子可能非常有帮助,这样每次运行代码时,它们都会执行相同的操作。
要获得每次运行的最大随机数,请致电
numpy.random.seed()
。
这将导致numpy将种子设置为从/dev/urandom
Windows或其Windows模拟获得的随机数,或者,如果两者均不可用,它将使用时钟。有关使用种子生成伪随机数的更多信息,请参见Wikipedia。