1 분 소요

데이터 분할 :: train_test_split( )

from sklearn.model_selection import train_test_split
train_test_split(
	arrays,                             # list, Numpy array, dataframe, etc...
  test_size = 0.25,                   # float : 0.0 ~ 1.0 | int : 샘플의 개수
  train_size = test_size를 제외한 나머지, # float : 0.0 ~ 1.0 | int : 샘플의 개수
  random_state = None,
  shuffle = True,
  stratify : None
)
  • Option

    • arrays : 분할시킬 데이터를 입력
    • test_size : 테스트 데이터셋의 비율(float) or 갯수(int)
    • train_size : 학습 데이터셋의 비율(float) or 갯수(int)

    • random_state : 데이터 분할시 셔플이 이루어지는데 이를 위한 시드값

    • shuffle : 분할 하기 전 데이터 섞을지 여부

    • stratify : 지정한 Data의 비율을 유지
import numpy as np
from sklearn.model_selection import train_test_split # 데이터 분할을 위한 임포트
# 데이터 생성
X, y = np.arange(10).reshape((5, 2)), range(5)

print(f"X :\n{X}\n--------\ny : \n{list(y)}\n")

# 데이터 분할
X_train, X_test, y_train, y_test = train_test_split(
    X, y,
    test_size=0.2,    # test 비율을 20%
    random_state=42)

# 결과 확인
print(f"X_train :\n{X_train}\n--------\nX_test : \n{X_test}\n--------\ny_train : \n{y_train}\n--------\ny_test : \n{y_test}")
X :
[[0 1]
 [2 3]
 [4 5]
 [6 7]
 [8 9]]
--------
y : 
[0, 1, 2, 3, 4]

X_train :
[[8 9]
 [4 5]
 [0 1]
 [6 7]]
--------
X_test : 
[[2 3]]
--------
y_train : 
[4, 2, 0, 3]
--------
y_test : 
[1]