Python and AI/AI

기계 학습 훈련 데이터 구성 방법(train_test_split , function)

Re-Happy-Doc 2020. 2. 7. 17:10

train_test_split 함수

train_test_split 함수는 전체 데이터셋 배열을 받아서 랜덤하게 훈련/테스트 데이터 셋으로 분리해주는 함수입니다. 함수 정의는 아래와 같습니다. 참고로 함수에 대한 자세한 설명은 링크에서 확인 가능합니다.


from sklearn.model_selection import train_test_split


sklearn.model_selection.train_test_split(array*, test_size, train_size, random_state, shuffle, stratify)[source]


random_state는 int, randomstate instance 또는 None 값을 사용합니다. 정수 값을 입력하면 숫자를 random하게 생성할때 사용되는 seed 숫자로 사용되며, None을 입력하면 np.random에서 제공하는 random number generator가 사용됩니다.


stratify는 훈련/테스트 데이터들이 원래의 input dataset의 클래스의 비율과 같은 비율을 가지도록 할 것인지 지정한다. 예를 들어 0,1의 클래스가 input dataset에 20:80 비율로 있었다면 훈련 데이터와 테스트 데이터 역시 각각의 클래스가 같은 비율로 있도록 지정할 수 있다. 

이런 식으로 데이터를 비율 등으로 간단하게 데이터를 분리하여 실험 데이터를 구성할 수 있습니다. 다음 포스팅에서는 k-fold validation 방식을 설명하겠습니다 : )