Product Analytics

[Stat] 회귀모형 평가하기 - RMSE(평균 제곱근 오차)

_Aiden 2024. 12. 24. 20:17
728x90

 

입력변수가 하나일 땐 최소제곱법의 공식을 통해 기울기(a)와 회귀상수(b)를 구할 수 있지만, 입력변수가 여러 개일 때는 최소제곱법으로는 무리가 있다. 그리고 대부분의 데이터셋은 절대적으로 입력변수가 여러 개이다.

이런 경우, 오차를 가장 최소화하는 최적선을 그리기 위해 평균 제곱근 오차(Root mean square error)를 사용한다.

 

 

평균 제곱근 오차...이전에 오차는 뭐야?

선형회귀에서의 가장 중요한 이슈는 결국 오차가 가장 최소화되는 가장 적합한 '예측선'을 찾는 것이다.

여기서의 오차는 결국, '실제 값'과 '예측 값'의 차이를 말한다.

운동 시간이 인풋(입력변수, 독립변수)인 x, 푸쉬업 개수가 우리가 예측해야 하는 종속변수, 결과변수인 y이다. 예측값은 y햇이다.

 

이게 y햇

 

오차는 y(실제 값)-y햇(예측 값)이다.

 

 

평균 제곱근 오차(RMSE)

 

 

(1) 오차의 합

각각의 오차를 구하면 -1.8, 3.9, -2.4, 0.3이다. 이걸 다 더한 오차의 합은 0이다. 오차에 음수가 껴있으므로 이런 어메이징한 결과가 나오게 되는데, 이렇게 단순히 다 더해버리면 큰일난다.

따라서, 오차의 합을 구할 때는 각 오차를 제곱한 값들을 더한다.

오차의 합을 다시 구해보면 24.3이 나온다.

 

(2) 오차의 합의 평균

24.3

이 오차의 합의 평균을 구하면 6.075가 나온다. 편의상 반올림하여 6.1이라고 하겠다.

이 6.1은 평균 제곱 오차(Mean square error)이다.

이 값을 최소로 하는 선을 찾는 것이 선형회귀에서의 미션이다.

그런데, 간혹 오차합의 값이 굉장히 크게 나오는 경우에는 평균제곱오차의 값이 너무 커지는 경우가 있다. 평균제곱오차가 커지면 단점이 있다. 불편하다. 딥러닝에서 다루는 데이터셋은 보통 아주 방대하고 큰 경우가 많은데 이런 경우에는 연산 속도가 느려질 수 있다는 단점이 있다. 그래서 우리는 저 값에 루트를 씌운다.

 

평균제곱오차(MSE)에 루트 하나 씌운게 전부다.

선형회귀에선 이 평균제곱근오차가 가장 작은 선을 찾는 것이 미션이다. 이 값을 가장 최소화하는 기울기 a와 회귀상수 b를 찾는 것!

 

반응형
LIST