1
sklearn에서 StratifiedKFold의 무작위 상태 변수를 가지고 놀았지만 임의적 인 것으로 보이지 않습니다. 내가 설정 random_state=5
, 그때 다른 테스트를 random_state=4
설정을 설정해야 줄 믿습니다,하지만이 경우되지 않습니다. 아래에 조잡한 재현 가능한 코드를 만들었습니다. sklearn 임의 상태가 무작위가 아닙니다.
import numpy as np
from sklearn.cross_validation import StratifiedKFold
from sklearn import datasets
iris = datasets.load_iris()
X = iris.data
y = iris.target
그럼 내가 설정
random_state=5
, 내가 마지막 값을 저장하는 :
random_state=4
에 대해 동일한 절차를 수행
skf=StratifiedKFold(n_splits=5,random_state=5)
for (train, test) in skf.split(X,y): full_test_1=test
full_test_1
array([ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 90, 91, 92,
93, 94, 95, 96, 97, 98, 99, 140, 141, 142, 143, 144, 145,
146, 147, 148, 149])
을 :
skf=StratifiedKFold(n_splits=5,random_state=4)
for (train, test) in skf.split(X,y): full_test_2=test
full_test_2
array([ 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 90, 91, 92,
93, 94, 95, 96, 97, 98, 99, 140, 141, 142, 143, 144, 145,
146, 147, 148, 149])
그때 할 수있는 우선 내 데이터를로드 그들이 동등하다는 것을 검사하십시오 :
np.array_equal(full_test_1,full_test_2)
True
두 개의 임의 상태가 동일한 숫자를 반환해야한다고 생각하지 않습니다. 논리 또는 코드에 결함이 있습니까? 링크 된 문서에서