회귀분석 정리하기
1. 회귀분석이란?
회귀분석은 영어로 Regression Analysis라고 불리며, 독립변수(Independent variable)를 사용하여 종속변수(Dependent variable)를 예측하는 문제를 해결하기 위해서 사용되어집니다.
회귀분석의 회귀라는 단어의 의미는 ‘옛날 상태로 돌아가는 것’을 의미하며 영국의 유전학자 프랜시스 골턴이 부모의 키와 아이들의 키의 연관 관계를 연구하면서 두 변수사이에는 선형적인 관계가 있고, 시간이 지날수록 키가 커지거나 작아지기 보다는 전체 키의 평균으로 돌아가려는 경향이 있다는 가설을 세웠으며 이를 분석하는 방법을 ‘회귀분석’이라고 하였습니다. 이러한 경험적 연구 다음으로 칼 피어슨은 조사한 결과를 바탕으로 함수 관계로 도출하여 수학적으로 정립하였습니다.
경우에 따라서는 이진 분류 문제를 해결할 때도 사용이 됩니다. 단, 이진 분류 문제를 해결할 때는 로지스틱 회귀분석을 사용합니다.
2. 선형회귀식 알아보기
선형회귀식은 다음과 같이 나타낼 수 있습니다.
$y = \beta{x} + \epsilon, \epsilon\sim iidN(0,\sigma^2) $
$y$ 는 종속변수, $x$ 는 독립변수, $\epsilon$ 은 오차, $\beta$ 는 회귀계수를 의미합니다.
$\epsilon \sim iidN(0,\sigma^2)$ 에서 $iid$ 는 independent and identically distribution의 줄임말로 선형회귀분석을 적용하기 위한 기본 가정으로 4가지로 정리가 가능합니다.
- 오차항은 동일한 분산을 갖는다. (등분산성)
- 수집된 데이터의 확률분포는 기대값이 0인 정규분포를 이루고 있다. (정규성)
- 독립변수들은 상호간에는 상관관계가 없어야 한다. (독립성)
- 독립변수와 종속변수는 서로 선형관계여야 한다. (선형성)
독립변수가 여러개인 다중 선형회귀분석의 경우 독립변수들간에 상관관계가 존재하면 다중공선성 문제가 발생하며 이 문제가 발생하게 되면 선형회귀모델의 신뢰성이 떨어지게 됩니다.
잔차(Residuals) 란 우리가 회귀모델을 사용하여 추정한 추정량과 실제 데이터 모수간의 차이를 의미하며 오차와 비슷한 의미를 가집니다.
독립변수와 종속변수의 선형관계 여부는 상관분석을 통하여 구할 수 있습니다.
상관분석으로 나온 두 변수의 상관계수가 0에 가까울수록 선형관계가 모호해진다는 의미이고 -1 이나 1 에 가까울 수록 두 변수는 뚜렷한 선형관계를 가진다고 말할 수 있습니다.
선형회귀식은 종속변수의 개수와 독립변수의 개수에 따라서 부르는 명칭이 달라집니다. 서로 다른 명칭을 그래프로 정리를 하면 그림과 같습니다.
머신러닝 모델의 관점으로 봤을 때는 오차와 회귀계수는 학습을 통하여 모델의 성능을 개선시킬 수 있게 가능한 파라미터에 해당하는 부분입니다.
추정된 파라미터를 바탕으로 새로운 데이터 $x$ 가 입력되었을 때, $y$ 값을 예측하는 식이 만들어지는데 예측값과 실측값의 차이가 적을수록 좋은 모델이라고 볼 수 있습니다.
선형회귀식이 잘 추정되었는지 확인하는 방법으로는 비용함수가 최소인지와 결정계수라는 지표가 존재하며 0과 1사이의 값으로 표현하여 1에 가까울수록 해당 선형회귀식은 데이터를 잘 표현하고 있다고 볼 수 있습니다.
하지만 결정계수를 보고 판단할 때, 주의할 점은 선형회귀식의 독립변수가 많을 수록 결정계수는 크게 나오기 때문에 단순히 변수를 늘리면 데이터를 잘표현한다는 잘못된 판단을 내릴 수도 있으니 주의해야 합니다.
3. 회귀모델 알아보기
선형회귀식은 통계학의 관점에서 본 회귀분석 모형으로 머신러닝 관점에서는 선형회귀식을 회귀모델로써 설명이 가능합니다.
회귀모델은 다음과 같이 표현합니다
$H = Wx + b$
위 식에서 $H$ 는 가정(Hypothesis), $W$ 는 가중치(Weight), $b$ 는 편향으로 부릅니다.
이전에 선형회귀식에서 회귀계수는 가중치가 되었고 오차는 편향으로 바뀌었는데, 머신러닝 모델은 ‘가중치와 편향을 데이터 기반의 학습을 통하여 비용함수가 가장 작은 선’을 찾아가는 방식으로 예측 문제를 해결합니다.
4. 회귀모델 최적화 시키기
보통 회귀모델의 비용함수는 평균제곱오차(Mean Square Error)를 사용하며 비용함수를 줄여가는 최적화 방법으로는 경사 하강법(Gradient Descent Algorithm)을 사용합니다.
경사 하강법은 파라미터인 가중치와 편향의 그래디언트에 변화를 주며 비용함수가 최소가 되는 구간을 찾아가는 방식으로 최적화를 진행합니다.
데이터에 따라서 비용함수와 파라미터간의 함수관계는 무수히 많이 존재하지만 일반적인 함수관계를 시각화하며 최적화 과정을 이해해보겠습니다.
y축은 비용함수이고 x축은 계속 갱신되어지는 가중치와 편향과 같은 파라미터일 때, 그래디언트는 갈수록 감소하여 결국에는 0이 되는 지점이 비용함수가 최소가 되는 구간으로 최적화가 되어지는 지점이라고 할 수 있습니다.
경사 하강법으로 파라미터가 갱신되어지는 식은 다음과 같습니다.
$W:= W-{\alpha}\frac{\partial{J(w)}}{\partial{w}}$
여기서 $\alpha$ 는 학습률(learning rate)라고 부르며 학습의 속도를 더 빨리 수렴시키거나 더 느리게 학습의 속도를 조절해주는 하이퍼파라미터입니다.
학습률이 너무 크면 그래디언트가 최적점을 지나서 제대로 수렴이 발생하지 않을 수가 있고, 학습률이 너무 작으면 수렴하는데 시간이 너무 오래 걸리기 때문에 적절한 수준의 학습률을 지정해주는 것이 좋습니다.