2016-11-25 5 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]) 
関連する問題