본문 바로가기
AI/Machine-Learning

[sklearn] train_test_split

by Wikinist 2023. 8. 29.

sklearn.model_selection 모듈의 train_test_split 함수는 주어진 데이터를 훈련 세트와 테스트 세트로 분할하는 데 사용되는 함수입니다. 이 함수를 사용하면 기계 학습 모델을 훈련하고 평가하는 데 필요한 데이터를 쉽게 분할할 수 있습니다.

함수 시그니처

train_test_split(*arrays, test_size=None, train_size=None, random_state=None, shuffle=True, stratify=None)

매개변수:

*arrays: 분할하려는 데이터 배열들을 가변 인수로 전달합니다. 보통 하나의 피처 행렬 (X)과 하나의 타깃 벡터 (y)를 전달합니다.
test_size: (선택사항) 테스트 세트의 비율을 나타내는 실수값이나 정수값입니다. 기본값은 0.25로, 데이터의 25%를 테스트 세트로 사용합니다.
train_size: (선택사항) 훈련 세트의 비율을 나타내는 실수값이나 정수값입니다. test_size를 지정하지 않은 경우에만 사용됩니다. 기본값은 1 - test_size로 계산됩니다.
random_state: (선택사항) 난수 발생을 위한 시드(seed) 값으로, 데이터를 무작위로 섞을 때 사용됩니다. 동일한 시드를 사용하면 매번 동일한 방식으로 데이터가 섞이게 됩니다.
shuffle: (선택사항) 데이터를 섞을지 여부를 나타내는 부울값입니다. 기본적으로 True로 설정되어 있습니다.
stratify: (선택사항) 클래스 분포를 고려하여 분할할 때 사용되는 타깃 벡터입니다. 분류 문제에서만 의미가 있습니다.

반환값:

함수는 튜플로써 훈련 데이터와 테스트 데이터를 반환합니다. 반환되는 값은 (X_train, X_test, y_train, y_test) 형태이며, *arrays에 전달한 순서대로 분할된 데이터가 포함되어 있습니다.

사용 예시

from sklearn.model_selection import train_test_split

X = ...  # 피처 데이터
y = ...  # 타깃 데이터

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

위의 예시에서는 입력 데이터 X와 y를 80:20 비율로 훈련 세트와 테스트 세트로 나누고 있습니다. random_state 매개변수를 통해 데이터가 항상 같은 방식으로 분할되도록 설정하고 있습니다.

해당 게시글은 ChatGPT의 도움을 받아 작성되었습니다.

'AI > Machine-Learning' 카테고리의 다른 글

[NumPy] ravel() - 데이터 1차원 변환  (0) 2023.08.29
[sklearn] inverse_transform  (0) 2023.08.29
RobustScaler  (0) 2023.08.29
다중 선형 회귀와 절차  (0) 2023.08.29
결정계수 (Coefficient of Determination)  (0) 2023.08.28