I. Intro RMSE 를 배우는 취지
RMSE를 이해하기 위한 선형회귀의 기본 개념과 가설(Hypothesis) 세우기 비용함수에 대해서 서술한다
Scikit-learn 의 모듈 중 하나인 회귀모델의 실습 과정에서 나온 선형회귀와 RMSE를 잘 몰랐는데, 이것을 보충공부하는 과정에서 배운 것을 정리하자는 취지이다.
II. 선형회귀
1. 의의와 종류
선형회귀(Linear regression)란 종속 변수 y와 한 개 이상의 독립 변수 X와의 "선형 상관 관계"를 모델링하는 회귀분석 기법이다. 여기서 한개의 독립변수에 기반한 경우에는 <단순선형회귀>, 둘 이상의 독립변수에 기반한 경우에는 <다중선형회귀>라 한다.
2. 단순 선형 회귀 분석(Simple Linear Regression Analysis)
y = Wx + b
(y : 종속변수 , W : 가중치(weight), x : 독립변수, b : 편향 (bias) )
위 수식은 단순선형회귀분석의 수식을 보여준다. 여기서 W와 b 값을 잘 찾아내면 x와 y관계를 적절히 모델링한 것이 된다.
III. 가설 세우기 (예제)
1. 데이터
단순선형회귀 예제를 풀어본다. 학생들의 공부시간에 따라서 다음과 같은 점수를 얻은 data가 있다.
hours(x) | score(y) |
1 | 23 |
3 | 55 |
5 | 72 |
7 | 87 |
import numpy as np
import matplotlib.pyplot as plt
x = np.array([1,3,5,7])
y = np.array ([20, 50, 70, 90])
plt.scatter(x,y)
좌표평면으로 그리면 다음과 같다. 4점을 이으면 직선의 모습을 보여준다.
2. 가설세우기
얻게 된 data를 바탕으로 x와 y의 관계를 유추하고, 2시간 4시간, 6시간 공부하였을 때 성적을 예측하고 싶다
관계유추를 위해 수학적으로 식을 세우는데, 머신러닝에서는 "가설"이라고 한다.
H(x) = Wx + b
H는 Hypothesis 를 의미함
여기서 W와 b값을 알고 있으면 x가 2,4,6 일 때 y값을 확인할 수 있다.
-------
이를 구현하기 위한 사이킷런의 linera_model에 있는 선형회귀를 이용한다.
from sklearn.linear_model import LinearRegression
model = LinearRegression()
model
x를 행렬로 바꿔주어야한다. 그 이후 fit()함수를 이용하여 학습한다.
X = x.reshape(4,1)
model.fit(X,y)
hours 2, 4, 6시간 예측을 위한 predic()함수를 이용한다.
x_new = np.array([2,4,6])
X_new =x_new.reshape(-1,1)
y_new = model.predict(X_new)
plt.scatter(x, y, label='input data')
plt.plot(X_new, y_new, color='red', label='regression line')
IV. RMSE (Root Mean Square Error)
1. MSE (Mean Square Error)
MSE란 비용함수
--미완--