x_train, x_test, y_train, y_test = train_test_split(features, labels, test_size=0.2, random_state=16)
모델 학습을 위해 데이터셋을 구성할 때 자주 보이는 random_state는 무엇일까?
- 데이터셋을 train, test로 나눌 때 자동으로 무작위로 섞게 된다. (shuffle=False 파라미터를 설정하지 않는다면)
- 여기에서 무작위란 어떤 특정한 숫자로부터 시작한 난수처럼 보이는 수열을 말한다.
- 수열이 시작되는 특정한 숫자를 시드(seed)라고 한다.
- 이 시드를 수동으로 설정한 후, 동일한 시드를 사용하면 동일하게 나눠진 데이터를 얻을 수 있다.
- 따라서 데이터를 섞되, 일정하게 섞고 싶을 때 사용하는 것이 seed이다.
- 이 seed를 설정하는 파라미터가 random_state이다.
(참고) stratify 파라미터란?
- label당 데이터의 분포를 일정하게 고정하는 파라미터이다.
-
stratify(labels)
-
- 예를 들어 label=[0, 1]이라면, 매 split을 진행할 때마다 0과 1의 비율을 train, test 셋에서 일정하게 유지시킨다.
- 분류 (classification) 모델에서 중요한 파라미터이다.
- scikit-learn 공식문서 설명 : 클래스 label을 이용해 계층적으로 데이터를 분할한다.
반응형
'ML & DL' 카테고리의 다른 글
[debugging] torchvison model 다운로드시 나타나는 WinError 10060 해결하기 (0) | 2023.07.24 |
---|---|
interpolate method의 종류 및 차이점 (0) | 2021.07.27 |
confusion matrix와 평가지표 (1) | 2021.07.27 |
가중치 초기화의 정의와 방법론 (2) | 2021.07.02 |