train_test_split

이윤택·2022년 8월 28일
0

Data Science

목록 보기
10/11

Credit card fraud detection 커널을 진행하다가, 해당 커널에 테스트 데이터셋이 분리되어 있지 않아 셀프로 데이터셋을 분리하며 알게된 정보를 공유하고자 한다

데이터셋의 분리 목적

  • 머신러닝 모델에 Train 데이터를 전부 학습시킨 후 Test 데이터에 모델을 적용했을 때 성능이 생각보다 나오지 않는 경우가 많다고 한다 (Overfitting)
  • 내가 학습시킨 모델이, Train 데이터에 과적합되어 조금이라도 벗어난 케이스에 대해서는 올바른 처리를 하지 못한다

사용방법

from sklearn.model_selection import train_test_split
... 데이터 ...
x_train, x_valid, y_train, y_valid = train_test_split(data, target, test_size=0.2, shuffle=True, stratify=target, random_state=34)

옵션

  • test_size : 테스트 데이터셋의 구성 비율. 위의 경우 전체 데이터의 20%를 테스트 데이터셋으로 사용하겠다는 의미
  • shuffle : default값은 True. Split을 하기 전에 데이터를 섞을지의 여부
  • stratify : default값은 None. 이 값을 target으로 지정해주면 각 class 비율을 train / validation에 유지해준다 (한 쪽에 쏠림 방지) -> Classification 다룰 때 중요
  • random_state : 세트를 섞을 때 해당 값을 보고 섞는다.
profile
데이터 엔지니어로 전향중인 백엔드 개발자입니다

0개의 댓글