데이터 세트 분리는 말 그대로 데이터를 분리하는 것이다.
2개의 데이터로 분리할 수 있는데
하나는 train데이터, 나머지 하나는 test데이터이다.
train데이터는 말 그대로 훈련 데이터인데, 우리가 학습을 할 때 사용할 데이터이다.
test데이터는 말 그대로 모델의 성능을 테스트 하는 데이터인데, train데이터를 통해 학습된 모델의 성능을 테스트 하는 데이터이다.
여기서 주의 할 점은 train데이터로 모델 학습을 진행하기 때문에 train데이터가 test데이터 보다 중요하다고 생각할 수 있다. 그러나 학습에 사용되지 않은 test데이터의 척도가 모델의 성능을 평가하기 때문에 중요한 것은
train데이터로 학습된 모델이 test데이터를 얼마나 잘 맞추는가 이다.
일반적으로 데이터가 주어지면 8:2의 비율로 train데이터와 test데이터를 나눈다.
지난번 포스팅에서 살펴본 공부 시간에 따른 시험 점수를 예제로 살펴보자.
cf) https://math-love.tistory.com/8
1. Linear Regression (선형 회귀)
머신러닝의 목적은 데이터의 알려진 속성들을 학습하여 예측 모델을 만드는데 있다. 이때 잘 찾아 낼 수 있는 가장 직관적이고 간단한 모델은 선(line)이다. 즉, 선형 회귀는 정돈된 데이터들을
math-love.tistory.com
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=0) # 훈련 80 : 테스트 20 으로 분리
주어진 데이터를 Train set과 Test set으로 분리하기 위한 코드이다.
sklearn.model_selection에서 train_test_split 를 import하고
독립변수의 Train set, Test set
종속변수의 Train set, Test set 을 나눠준다.
test_size 를 0.2로 지정하면 train_size 는 자동으로 0.8의 크기를 가진다.
(random_state=0 -> 일정한 값으로 표현하기 위함.)
이제 Train set 과 Test set 으로 분리를 마쳤으니 모델링 작업을 진행한다.
그리고 train데이터를 통해 학습된 모델이 test데이터를 얼마나 잘 표현하는지 평가해보자.
from sklearn.linear_model import LinearRegression
reg = LinearRegression()
reg.fit(X_train,y_train)
Train set으로 reg를 학습시킨다.
Train set으로 학습된 모델과 실제 값을 시각화하자.
plt.scatter(X_train, y_train, color = 'blue') # 실제값
plt.plot(X_train, reg.predict(X_train), color = 'green') # Train set model
plt.title('Score by hours (train data)') # 제목
plt.xlabel('hours') # X 축 이름
plt.ylabel('score') # Y 축 이름
plt.show()
우리가 살펴봐야할 것은 'Train set으로 학습한 모델이 얼마나 Test set을 잘 표현하는가?' 이다.
산점도 그래프를 Test set에 대해 나타내보자.
plt.scatter(X_test, y_test, color='blue') # 산점도
plt.plot(X_train, reg.predict(X_train), color='green') # 선 그래프
plt.title('Score by hours (test data)') # 제목
plt.xlabel('hours') # X 축 이름
plt.ylabel('score') # Y 축 이름
plt.show()
다행스럽게도 이 모델은 Test set을 잘표현 하고 있는 것으로 보인다.
'데이터 사이언스 > 하계 AI 중급과정' 카테고리의 다른 글
Ch 4. Polynomial Regression (다항회귀) (0) | 2023.07.12 |
---|---|
Ch 3. Linear Regression(선형회귀) (0) | 2023.07.12 |
Ch 2. 훈련 및 테스트 세트 (Train set, Test set) (0) | 2023.07.11 |
Ch 1. ML 실습을 위한 환경 (0) | 2023.07.10 |
1. Linear Regression (선형 회귀) (0) | 2023.06.29 |