Credit card fraud detection 커널을 진행하다가, 해당 커널에 테스트 데이터셋이 분리되어 있지 않아 셀프로 데이터셋을 분리하며 알게된 정보를 공유하고자 한다
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
: 세트를 섞을 때 해당 값을 보고 섞는다.