2016-11-25 1 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/

이 질문에 (JohnColeman에서) 주석과이 대답을 통합하기 위해,이 예를 언급 할 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}, 의사 난수 생성기를 초기화 옵션 랜덤 씨앗. 정수, 길이가 정수 인 배열 (또는 다른 시퀀스) 또는 없음 (기본값) 일 수 있습니다. seed가 None이면 RandomState는 가능한 경우/dev/urandom (또는 Windows 아날로그)의 데이터를 읽거나 그렇지 않으면 시드를 시도합니다.

시드의 개념은 난수 생성과 관련이 있습니다. 자세한 내용은 here을 참조하십시오.

>>> 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]) 
관련 문제