데이터사이언티스트 성장기

선형회귀 본문

머신러닝

선형회귀

dssj 2022. 10. 12. 23:56

선형회귀(Linear Regression)란 종속변수 y와 한 개 이상의 독립변수들 x간의 상관관계를 모델링하는 분석을 말합니다.

선형회귀에서는 x라는 변수의 값이 변함에 따라 y의 값이 영향을 받아 변화하게 되는 상황에서 이 변수들 간의 관계를 가장 잘 나타낸 함수를 찾는 과정을 가지게 됩니다. 

 

예를 들어 여러 사람들의 키와 몸무게 데이터를 나타낸 그래프가 있습니다.

위 그래프는 눈대중으로 보아도 일반적으로 키가 큰 사람일수록 몸무게가 많이 나가는 경우가 많다는 것을 알 수 있습니다. 즉, 키와 몸무게 사이에 어느 정도 상관관계가 있어 보입니다.

 

이때, 저 점들의 관계성을 나타내는 직선을 그어보겠습니다.

정확하진 않겠지만 대충 이런 직선으로 두 변수간의 관계를 나타낼 수 있을 것 같습니다. 

이때, 가장 최적의 직선, 즉 함수를 찾아내는 것이 선형 회귀 분석입니다.

 

그렇다면 최적의 직선은 어떻게 구할 수 있을까요?

 

좀 더 구체적인 데이터로 예를 들어 보겠습니다. 다음과 같은 독립변수 X와 종속변수 Y가 있다고 정의해보겠습니다.

 

X = [1,2,3]

Y = [3,5,7]

 

좌표 평면 상에 나타내면 다음과 같습니다.

위 좌표평면에서 데이터들의 관계를 나타내는 선은 y = wx + b 라는 함수에 의해 도출되게 됩니다. 여기서 w는 가중치(weight), b는 편향(bias)라고 합니다.

일단 우리는 저 w와 b의 값을 모르기 때문에, 함수에 임의의 값을 넣어 선을 그어보겠습니다.

먼저 w에 1, b에 0을 넣어 만든 선을 그었습니다. 우리가 임의로 설정한 값이 실제 데이터와 가장 근접한 함수의 w와 b값과 얼마나 차이가 나는지 구하고, 그 w와 b값에 가장 근접한 값을 구하는 것이 목적입니다.

 

이때, 임의로 설정한 예측값과 실제값의 차이를 구하여 그 차이를 최소화하기 위해 최소제곱법이라는 공식을 사용합니다. 

최소제곱법은 각 예측값과 실제값의 차이의 제곱의 합을 구하여 예측 함수가 실제 함수에서 얼마나 벗어났는지를 판단합니다.

 

먼저 위 좌표평면에서 그은 선이 실제값에서 얼마나 벗어났는지는 구해봅시다.

이제 각 값의 오차값을 모두 제곱하여 더해줍니다. 

$${2^2 + 3^2 + 4^2} = 29$$

 

이를 식으로 나타내면 다음과 같습니다.

$$\sum_{i=1}^N{(wx_i + b - y_i)^2}$$

 

이제 이렇게 구한 오차값을 최소화하는 w와 b의 값을 구해야 합니다. 이때 경사하강법을 사용하여 최적의 값을 구할 수 있습니다.

 

먼저 최적의 w 값을 구해보겠습니다. w값은 그은 직선의 기울기를 의미합니다. w값이 커지면 커질수록 기울기는 커지고, w값이 작아지면 작아질수록 기울기 값은 작아집니다. 또한, 이 w로 인해 결정되는 직선의 기울기가 최적의 기울기 값에서 많이 벗어나면 벗어날수록 오차값도 커지게 됩니다.

 

그렇다면 w값의 변화에 따라 기울기와 그에따른 오차값이 어떻게 변하는지 눈으로 확인해봅시다.

 파란 실선은 최적의 w값일 때 직선의 기울기를 나타내며, 각 파란 점선은 w값의 변화에 따른 직선의 기울기를 나타냅니다. w값이 커지든 작아지든 최적의 값에서 멀어지면 멀어질수록 그 오차값도 커진다는 것을 알 수 있습니다.

 

따라서 이 w의 값과 오차값의 관계를 그래프로 나타내면 다음과 같습니다.

최적의 w값 한 지점에서 벗어나면 벗어날 수록 오차값이 커지는 성질을 가지고 있으므로 이차함수 그래프와 같은 모양을 가지게 됩니다.

 

여기서 위 그림과 같은 이차함수 그래프는 기울기가 0인 지점에서 최솟값을 가지게 됩니다. 따라서 위 그래프에서 접선의 기울기가 0인 지점의 w값이 최적의 w값이라고 할 수 있습니다. 

 

 

이렇게 접선의 기울기가 양수면 왼쪽으로, 음수면 오른쪽으로 조금씩 이동해가는 과정을 반복하여 기울기를 0에 가까워지게 맞추는 과정이 경사하강법입니다.

 

w 뿐만 아니라 b도 최적의 값에서 양의 방향이든 음의 방향이든 멀어지면 멀어질수록 오차값이 커지므로 같은 원리로 값을 구할 수 있습니다.

'머신러닝' 카테고리의 다른 글

의사결정나무  (0) 2022.11.11
서포트 벡터 머신  (0) 2022.10.25
Comments