应用机器学习算法时,Python中的np.random.seed
和random_state
有什么区别?
答案 0 :(得分:0)
如果您想为调用np.random...
的任何函数设置种子,我们将使用np.random.seed
。设置种子的效果是全局的,因为它将最终影响所有功能。
>>> np.random.seed(1234)
>>> np.random.uniform(0, 1, 5)
array([0.19151945, 0.62210877, 0.43772774, 0.78535858, 0.77997581])
>>> np.random.rand(3)
array([0.27259261, 0.27646426, 0.80187218])
>>> np.random.seed(1234)
>>> np.random.rand(3)
array([0.27259261, 0.27646426, 0.80187218])
如果您不想更改全局种子值,而只想为一项任务设置状态,则使用random_state。
>>> r = np.random.RandomState(1234)
>>> r.uniform(0, 1, 5)
array([0.19151945, 0.62210877, 0.43772774, 0.78535858, 0.77997581])
>>> np.random.rand(3)
array([0.17292499, 0.24859476, 0.90838076])
>>> np.random.rand(3)
array([0.26393139, 0.69557975, 0.32776094])