Loading [MathJax]/jax/output/CommonHTML/jax.js

[models] 회귀분석RegressionAnalysis과 최소자승법LeastSquareMethod

2021. 7. 12. 17:06Machine Learning/Models

이번 글에서는 머신러닝 모델 중 가장 기초적인 모델이라고 할 수 있는 회귀분석에 대해 알아보겠습니다. 회귀분석은 가장 기초적이지만 중요한 내용을 많이 포함하고 있는 모델이기도 합니다.


독립변수 X와 종속변수 Y 그리고 오 차 항 ϵ이 평균이 0이고, 분산이 σ2인 정규분포를 따르고 있다고 가정할 때, 우리가 풀고자 하는 문제를 다음과 같이 나타낼 수 있습니다.

Y=β0+β1X+ϵ , where ϵN(0,σ2)

이와 같이 독립변수와 종속변수가 선형의 관계를 가질 때, 가중치 β0, β1을 찾는 문제를 선형 회귀분석이라고 정의합니다.

이 가중치들을 어떻게 찾을 수 있을까요? 이 가중치들을 찾는 방법 중 하나가 최소 자승 법입니다. 자승은 쉬운 말로 제곱을 의미하는데, 자승의 대상은 오차에 해당합니다. 즉 오차들을 제곱하여 그 오차들이 가장 최소의 값을 가지도록 가중치들을 찾아준다고 생각하시면 될 것 같습니다. 자세한 설명은 다음과 같습니다.

우선 f(X)=β0+β1X라고 두면, 준식은 Y=f(X)+ϵ으로 나타낼 수 있습니다. 우리가 만든 모델로 예측한 값 f(X)와 실제 정답Y을 뺀 차이를 오차라고 하는데, 직관적으로 이 오차 ϵ=Yf(X)을 최소화시키면 실제 값과 비슷한 값을 만들 수 있을 것이라 생각됩니다. 음수에 대한 가능성과 입력값 X의 확률이 다를 가능성을 고려하여 오차 함수를 다음과 같이 나타낼 수 있습니다.

오차 함수 : E[ϵ2]=E[(Yf(X))2]


선형 회귀분석에서는 최소 자승법을 이용하여 오차 함수를 최소로 만드는 가중치 β0, β1를 찾아주게 됩니다. 위의 오차 함수처럼 곡면이 아래로 볼록한 경우, 오차 함수를 각 가중치에 대해 편미분을 하여 값이 0이 가중치를 최적의 가중치로 찾아주면 됩니다. 계산의 결과는 다음과 같습니다.

^β1=Σni=1(xi¯x)(yi¯y)Σni=1(xi¯x)2

^β0=¯y^β1¯x

여기서 n은 샘플의 개수, ¯x은 표본X들의 평균, ˆyy의 추정치를 의미합니다.