본문 바로가기
Data_engineering/Machine_learning

[Machine_learning] 훈련 세트(train)와 테스트 세트(test)

by kyhh1229 2023. 2. 26.

훈련 세트(train set)

훈련 세트란 모델을 학습시키는 데 사용되는 데이터의 일부분입니다.

모델이 학습하는 과정에서 훈련 세트의 데이터를 이용해 가중치(weight)와 절편(bias)을 조절하며, 최적의 모델을 만들어냅니다.

따라서, 훈련 세트의 데이터가 모델의 학습에 큰 영향을 미칩니다.

 

테스트 세트(test set)

반면, 테스트 세트는 학습된 모델이 얼마나 잘 일반화되어 새로운 데이터를 예측할 수 있는지를 평가하는 데 사용됩니다. 즉, 모델이 이전에 본 적 없는 새로운 데이터를 얼마나 잘 예측하는지를 측정하는 데 사용됩니다. 훈련 세트와 달리, 테스트 세트는 모델의 학습에 전혀 사용되지 않습니다.

 

훈련 세트와 테스트 세트의 중요성

훈련 세트와 테스트 세트를 나누는 이유는, 모델이 학습 데이터를 외워버리는 것인 '과적합(Overfitting)'을 방지하기 위해서입니다.

만약 모델이 훈련 데이터를 외워버리게 되면, 새로운 데이터가 들어왔을 때 예측력이 낮아질 수 있습니다. 따라서, 훈련 데이터와 테스트 데이터를 나누어 모델이 일반화되도록 학습시켜야 합니다.

 

 

사용예시

아래 코드는 머신러닝 모델을 학습하고 테스트하는 과정을 보여줍니다. 먼저, 데이터를 불러와 train_test_split 함수로 훈련 세트와 테스트 세트를 나눕니다. 그 후, LinearRegression 모델을 훈련 세트로 학습시키고, predict 함수를 사용하여 테스트 세트의 결과를 예측합니다. 마지막으로, score 함수를 사용하여 모델의 성능을 평가합니다.

 

from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression

# 데이터 불러오기
X, y = load_data()

# 훈련 세트와 테스트 세트 나누기
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)

# 모델 학습
model = LinearRegression()
model.fit(X_train, y_train)

# 모델 예측
y_pred = model.predict(X_test)

# 모델 평가
score = model.score(X_test, y_test)

'Data_engineering > Machine_learning' 카테고리의 다른 글

[sklearn] score()  (0) 2023.02.26
[sklearn] fit ()  (0) 2023.02.26
[sklearn] train_test_split - stratify  (0) 2023.02.26
[Machine_learning] 지도 학습_비지도 학습  (0) 2023.02.26
[Machine_learning]이진분류  (0) 2023.02.26

댓글