2016-11-25 76 views
3

我有一個名爲「admissions」的數據集。numpy.random.seed()有什麼用處它有什麼區別嗎?

我想對一個簡單的數據集進行堅持驗證。爲了進行置換的數據集,我用下面的命令的索引:

import numpy as np 
np.random.permutation(admissions.index) 

我是否需要置換之前使用np.random.seed()?如果是這樣,那麼爲什麼np.random.seed(number)中的數字代表什麼?

+3

點擊此處查看:https://docs.scipy.org/doc/numpy/ reference/generated/numpy.random.RandomState.html#numpy.random.RandomState – Markon

+4

如果您希望能夠以完全相同的排列方式重複實驗(例如,出於調試目的),您需要設置一個可重現的種子。如果你不需要重複,那麼你可以跳過明確的播種部分。如果您設置了明確的調試種子,請在調試完成後將其刪除。 –

+3

[random.seed():它可以做什麼?](http://stackoverflow.com/questions/22639587/random-seed-what-does-it-do) –

回答

5

你不需要在隨機排列之前初始化種子,因爲這已經爲你設置了。 據RandomState文檔:

參數:
種子:{無,INT,array_like},任選 隨機種子初始化所述僞隨機數發生器。可以是整數,任何長度的整數數組(或其他序列),或者 無(默認值)。如果種子是None,那麼RandomState會嘗試從/ dev/urandom(或Windows模擬)讀取 數據(如果可用),否則將從時鐘中讀取 。

種子的概念與生成隨機數有關。你可以閱讀更多關於它here

這個答案與評註(從JohnColeman)你的問題整合,我想提一提這個例子:

>>> numpy.random.seed(0) 
>>> numpy.random.permutation(4) 
array([2, 3, 1, 0]) 
>>> numpy.random.seed(0) 
>>> numpy.random.permutation(4) 
array([2, 3, 1, 0])