본문 바로가기

BLOG/머신러닝

[머신러닝] train_test_split : 비율 설정 방법 - test_size

이전 글에서는 train_test_split() 함수를 이용하여 데이터를 train data와 test data로 나눌 때, 무작위로 나눌지 순차적으로 나눌지 설정하는 방법에 대해 살펴보았는데요, 이번에는 train data와 test data로 나눌 때 비율을 지정해주는 방법에 대해서 살펴보도록 하겠습니다.

 

 

- train_test_split :  비율 설정 방법

train_test_split() 함수를 사용하여 데이터를 train data와 test data로 나눌 때, 기본값은 75 : 25 비율로 나누어지게 됩니다.

 

하지만, 데이터가 많이 없다면 학습할 데이터를 늘려주어야 하며, 데이터가 매우 많다면 오버피팅 문제를 방지하기 위해 학습할 데이터를 조금 줄여주는 게 좋을 수 있습니다.

 

따라서 각 상황에 따라 유동적으로 비율을 설정해주는게 좋은데요, 이는 train_test_split() 함수에서 test_size 의 값을 설정해줌으로써 지정할 수 있습니다. 만약 train data와 test data를 70 : 30 으로 지정하고 싶다면 아래와 같이 test data의 사이즈를 나타내는 test_size의 값을 test_size = 0.3 으로 지정해주면 됩니다.

 

x_train, x_test, y_train, y_test = train_test_split(x, y, test_size=0.3, random_state=0)

 

위 코드에서 x, y의 자리에 각각 입력값, 결과값 데이터를 넣어주면 되는데요, 위 코드를 입력하고 실행한 뒤 

len(x_train), len(y_train)을 통해 각 데이터의 개수를 확인하면 70 : 30 비율로 나눠졌음을 확인할 수 있답니다.