머신러닝 (Machine Learning)/회귀(Regression) 분석

회귀 분석을 하는 이유 (feat.회귀선, 회귀 계수)

DS지니 2021. 2. 1. 21:41
728x90
반응형

회귀 분석을 하는 이유

관찰이나 실험으로 얻은 샘플자료(적은 수의 자료)를 분석하고 설명하기 위해서는 그 자료를 잘 표현할 수 있는 '방정식'을 예측해야 합니다. 자료를 가장 잘 설명하는 방정식이란, 원래 자료와의 오차(error)를 가장 적게 만든 식 입니다.

아래 그림의 x와 y의 분포도에 있는 저 선(Regression line)이 바로 '자료를 가장 잘 설명하는 방정식'이 됩니다.

회귀분석에서는 이 선을 '회귀선'이라고 하며, 이 회귀선의 '회귀(방정)식'을 이용하면 독립변수로 종속변수를 예측할 수 있게 됩니다.

회귀선과 오차

아래 그림은 종속변수(price)와 독립변수(sqft_living)의 분포도와 회귀선을 나타낸 그래프입니다.

저 회귀선은 흩어져 있는 잔차들(산포도)을 가장 잘 대표하는 선이죠!

여기서 이제 우리는 회귀의 의미를 이해할 수 있습니다.

회귀(Regression)란, 독립변수 X와 종속변수 y 두 변수 간의 상관관계를 함수 식으로 설명하는 통계적 방법이다.

분포도와 회귀선

상관관계 분석 VS 회귀분석

 

연속형 또는 순위자료로 이뤄진 두 변수의 상호관계만(선형 관계가 존재하는지 아닌지)을 보려면 상관관계 분석(Correlation analysis)을 이용한다. 즉, 상관관계 분석은 변수들 간의 선형성의 강도에 대한 통계적 분석이라 할 수 있다. 

 

그러나 한 변수의 값으로부터 다른 변수의 값을 예측하고자 하는 경우에는 회귀분석(Regression analysis)을 이용한다. 회귀분석은 변수들 간의 구체적인 함수관계를 파악하고자 할 때 즉, 인과관계라던지 한 변수가 다른 변수에 주는 영향력을 알아보고자 할 때 사용한다.

 


 

회귀 계수

이전 블로그에서 아파트를 예로 들어 독립변수와 종속변수를 설명했습니다. 다시 한번 자료를 가져와 보겠습니다.

 

통계학 용어를 빌리자면 회귀는 여러 개의 독립변수와 한 개의 종속변수 간의 상관관계를 모델링하는 기법을 통칭합니다. 예를 들어 아파트 방 개수, 아파트 면적, 주변 시내와의 거리 등 여러 개의 독립변수에 따라 아파트 가격이라는 종속변수가 어떤 관계를 나타내는지를 모델링하고 예측하는 것입니다.

 

Y = W1*X1 + W2*X2 +W3*X3 +...+ Wn*Xn 라는 선형 회귀식을 예로 들면 

 

Y = 종속변수(아파트 가격)

X = 독립변수(방 개수, 면적, 거리 등)

W = 독립변수의 값에 영향을 미치는 회귀 계수 (Regression coefficients)

 

입니다.

 

머신러닝 관점에서 보면 독립변수는 (Feature), 종속변수는 결정 값(Target)입니다.  머신러닝 회귀 예측의 핵심은 주어진 피처와 결정 값 데이터 기반에서 학습을 통해 최적의 회귀 계수를 찾아내는 것입니다. 

 

회귀는 회귀 계수의 선형/비선형 여부, 독립변수의 개수, 종속변수의 개수에 따라 여러 가지 유형으로 나눌 수 있습니다. 그렇기 때문에 회귀에서 가장 중요한 것은 바로 회귀 계수라고 할 수 있습니다!

 

 

 


선형 회귀선 (Linear Regression Line) 만들기

위에서 회귀선의 정의에 대해 잠깐 설명했었는데요, 그럼 이 회귀 직선은 어떻게 만들 수 있을까요?

회귀분석에서 또 다른 중요한 개념은 예측값(estimated value)과 잔차(residual)입니다. 예측값은 만들어진 모델이 추정하는 값이고, 잔차는 예측값과 관측값 차이입니다.(오차(error)는 모집단에서의 예측값과 관측값 차이를 말합니다.) 

 

회귀선은 잔차 제곱들의 합인 RSS(residual sum of squares)를 최소화하는 직선입니다. RSS는 SSE(Sum of Square Error)라고도 말하며 이 값이 회귀모델의 비용함수(Cost function)가 됩니다. 머신러닝에서는 이렇게 비용함수를 최소화 하는 모델을 찾는 과정을 학습이라고 합니다. (아래서 다시 설명)

 

 

X축과 Y축의 2차원 평면에서 독립변수 X는 특정 기울기와 절편을 가진 1차 함수 식으로 모델링할 수 있습니다. 

즉, 예측값 y = b0 + b1*X  로 계산할 수 있습니다. (b0=y절편, b1=기울기) 

 

실제값 y = b0 + b1*X + ERROR

 

여기서 y절편(y-axis intercept) 기울기 회귀 계수라고 지칭하며,  회귀 계수는 RSS를 최소화하는 값으로 모델 학습을 통해서 얻어지는 값입니다. 최적의 회귀 모델을 만든다는 것은 바로 잔차 합이 최소가 되는 모델을 만든다는 의미이며 동시에 오류 값 합이 최소가 될 수 있는 최적의 회귀 계수를 찾는 것입니다.

 


RSS (Reidual Sum of Squares) 잔차의 제곱의 합

오류 값은 +나 -가 될 수 있습니다. 그래서 전체 데이터의 오류 합을 구하려고 단순히 더했다가는 오류 합이 크게 줄어들 수 있습니다. 따라서 절댓값을 취해서 더하거나(MAE), 제곱을 해서 더하는 방식(RSS)을 취합니다. 일반적으로 미분 등의 계산을 편리하게 하기 위해서 RSS방식으로 오류 합을 구합니다. RSS는 회귀식의 독립변수 X, 종속변수 Y가 중심 변수가 아니라 회귀계수가 중심 변수임을 인지하는 것이 매우 중요합니다.

 

회귀에서 이 RSS는 비용(Cost)이며, 회귀 계수로 구성되는 RSS를 비용 함수라고 합니다. 머신러닝 회귀 알고리즘은 데이터를 계속 학습하면서 비용 함수가 반환하는 값(즉, 오류 값)을 지속해서 감소시키고 최종적으로는 더 이상 감소하지 않는 최소의 오류 값을 구하는 것입니다. 비용 함수를 손실 함수(Loss funcion)이라고도 합니다.

 

 

 잔차 제곱합을 최소화하는 방법은 최소 제곱 회귀 혹은 Ordinary least squares(OLS)라고 부릅니다.

 


<공부 정리>

- 회귀분석이란

: 자료 Y를 예측하기 위해 관련 있는 자료들을 추출해서 이들의 상관관계를 분석하고 예측 오류가 가장 적은 값을 구해 최적의 예측값을 찾는 과정입니다.

 

- 회귀분석을 하는 이유

: 변수들 간의 구체적인 함수관계(인과관계나 영향력)를 파악하고 예측하기 위해서 회귀분석을 사용합니다.

 

- 회귀선이란

: 변수들 간의 분포 그래프에서 흩어져 있는 잔차들을 대표하는 선입니다.(오류 값을 가장 최소화한 선)

 

회귀선 = RSS(잔차제곱의합)을 최소화 한 직선       

 

*잔차 = 샘플의 관측값 - 예측값

 

RSS=SSE(에러제곱의합)=회귀모델의 비용함수

728x90
반응형