본문 바로가기
Coding/AI

평균제곱오차란 무엇인가

by 루민즈 2023. 9. 27.
반응형

안녕하세요 

선형회귀란 각 데이터의 최적의 선을 구하는 작업을 의미했습니다. 

그중 사용한 방법 중 하나가 최소제곱법이 있죠 

최소제곱법에 대한 포스팅은 다음을 참고해 주세요 

https://ruminz.tistory.com/271 (선형회귀란 무엇인가)

https://ruminz.tistory.com/272 (파이썬으로 구현한 최소제곱법)

 

하지만 최소제곱법은 독립변수 x가 하나일때만 적용이 가능합니다. 대부분의 경우 독립변수가 하나가 아니죠 

위의 포스팅을 보면 알겠지만 성적을 결정짓는 요소는 실생활에서는 시간뿐만 아니라 여러 가지 있습니다. 

독립변수가 여러가지일때 쓰이는 방법 중 하나가 바로 평균제곱오차입니다. 

평균제곱오차란 일단 선을 긋고 그다음 수정해가는 방식입니다. 이는 딥러닝을 가능하게 하는 가장 중요한 요소입니다. 

앞에 예시를 다시 불러오겠습니다. 

 

이를 그래프로 나타내면 다음과 같습니다. 

 

최소제곱법에서 구한 최적의 직선은 

$$ y = 2.3x + 79 $$ 였습니다. 

 

하지만 이제는 평균제곱오차로 구해봅시다. 

y = ax + b 에서 a랑 b에 아무 값을 대입해 봅시다. 

 

a = 3 그리고 b에는 76을 대입해보겠습니다. 

그러면 y = 3x + 76이 됩니다. 

이 선과 데이터를 합쳐보겠습니다. 

여기서 오차는 선과 각점에 어느정도의 오차가 있는지 확인하면 됩니다. 

가설을 세운결과 오차를 표로 나타내면 다음과 같습니다. 

 

 

예측값 오차

 

이제 이 오차를 제곱한다음 전부 다 더하면 됩니다. 

$$ 1^2 + (-5)^2 + 3^2 + 3^2 $$ 을 해주면 

제곱오차의 총합이 나옵니다. 여기서는 44가 되겠네요 

평균제곱오차식을 정리하면 다음과 같습니다. 

$$ 평균제곱오차 = \frac{1}{n}\sum{(y-y')}^2 $$

여기서 y는 실제값 x에 대응하는 값이고 y'는 예측값에 대응하는 값입니다. 

그럼 여기서 평균제곱오차는 44/4 = 11이 나오네요 

 

이제 이값을 선형 회귀를 통해 계속 줄여주면 됩니다. 


Post

다음글 무직자 대출 알아보기 >