TL; DR : StratifiedShuffleSplit 사용test_size=0.25
Scikit-learn은 계층화 분할을위한 두 가지 모듈을 제공합니다.
- StratifiedKFold :이 모듈은 직접 k- 폴드 교차 검증 연산자로 유용
n_folds
합니다. 클래스가 양쪽에서 균등하게 균형을 이루도록 훈련 / 테스트 세트를 설정합니다.
여기에 몇 가지 코드가 있습니다 (위 문서에서 직접)
>>> skf = cross_validation.StratifiedKFold(y, n_folds=2)
>>> len(skf)
2
>>> for train_index, test_index in skf:
... print("TRAIN:", train_index, "TEST:", test_index)
... X_train, X_test = X[train_index], X[test_index]
... y_train, y_test = y[train_index], y[test_index]
...
- StratifiedShuffleSplit :이 모듈은 균등하게 균형 잡힌 (계층화 된) 클래스를 갖는 단일 훈련 / 테스트 세트를 생성합니다. 기본적으로 이것은
n_iter=1
. 여기에서 테스트 크기를 언급 할 수 있습니다.train_test_split
암호:
>>> sss = StratifiedShuffleSplit(y, n_iter=1, test_size=0.5, random_state=0)
>>> len(sss)
1
>>> for train_index, test_index in sss:
... print("TRAIN:", train_index, "TEST:", test_index)
... X_train, X_test = X[train_index], X[test_index]
... y_train, y_test = y[train_index], y[test_index]
>>>