AI/AI 정리

머신러닝의 선형회귀 성능평가를 위한 RMSE

Mo_bi!e 2021. 9. 28. 09:38

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란 비용함수

 

 

--미완--