Processing math: 100%

산업공학/Machine Learning

[머신러닝] 회귀 (Regression)

테드리 2024. 6. 3. 12:13

회귀란?

회귀라는 뜻은 어떤 지점으로 돌아간다는 뜻이다. 수많은 데이터들을 수집해보면 어떤 점, 즉 평균으로 돌아가게 되는데, 그 점들을 이어보면 하나의 직선을 이루게 되고 이것을 회귀 직선이라고 한다. 그리고 이 회귀 직선을 식으로 나타낸 것을 회귀식이라고 한다.

 

y=w0+w1x1+w2x2++wnxn+ϵ

 

  • y: 독립변수의 영향을 받아 값이 변화하는 수로, 종속변수라 하고 주로 분석하고자 하는 대상이 된다.
  • xi: 다른 변수에 영향을 받지 않고 독립적으로 변화하는 수로, 독립변수라고 한다.
  • wi: 독립변수가 1 변할 때, 종속변수가 얼마나 변하는지 나타내는 수로, 회귀계수라고 부른다.
  • ϵ: 실제값과 회귀값의 차이에 따른 오류값, 즉 잔차

따라서 회귀의 목적은 데이터들을 가장 잘 설명할 수 있는 하나의 회귀선, 즉 회귀식을 찾는 것이라고 할 수 있다. 

 

회귀의 종류

 

회귀 모델의 종류는 여러가지가 있는데, 설명 변수의 개수에 따라, 또 선형인지 아닌지에 따라 종류가 나뉘게 된다. 그중에서 모델의 형태가 선형인 것을 선형회귀라고 한다. 그렇다면 어떤 경우에 선형회귀라고 부르는 것일까? 

 

선형모형은 모형식이 모수(파라미터)들의 선형함수로 주어지는 모형을 뜻한다. 회귀모형에서 모수는 회귀계수 wi들을 의미하므로 회귀모형식이 wi들의 선형함수, 즉 1차 결합이면 선형회귀모형이라고 한다.

y=w0+w1x1+w2x2++wnxn+ϵ

과 같은 다중회귀 식이 있다고 가정할 때,

y=f(x,w)+ϵ 과 같이 설명변수들을 회귀계수들의 벡터로 생각했을 때, 회귀식 f(x,w)wi에 대한 편미분 f/wi가 어느 회귀 계수도 포함하지 않으면 회귀식 f(x,w)를 모수 wi에 대해 선형이라 한다. 즉,  모형식의 모든 회귀 계수 각각에 대해 편미분한 결과가 다른 회귀계수를 포함하지 않으면 선형모형이라고 한다.

 

그럼 이제 본격적으로 회귀 모델들에 대해 알아보도록 하겠다.

 

1. 선형 회귀 (Linear Regression)

  • Linear Regression의 학습 목적은 종속 변수와 설명 변수 간의 관계를 가장 잘 나타낼 수 있는 선형식을 모델링하는 것이다.
  • Linear Regression의 모델 추정을 위해서, 보통 예측값과 실제관측값인 잔차의 제곱을 최소화하는 최소제곱법(OLS)을 사용한다.

최소제곱법(OLS)

OLS=ni=1(yiˆyi)2

 

이 값이 최소가 되는 wi들을 찾는 것이다.

 

단순 선형회귀에서는 다음과 같이 회귀 계수를 추정할 수 있다.

w0=ˆyw1ˉx

w1=ni=1(xiˉx)(yiˉy)ni=1(xiˉx)2

 

다중 선형회귀에서는 다음과 같이 회기 계수 행렬을 추정할 수 있다.

W=(XTX)1XTY

 

1.1 Linear Regression의 평가

1) MAE (Mean Absolute Error)

  • 실제 값과 예측 값의 오차의 절댓값의 평균을 계산

MAE=1nni=1|yiˆyi|

MAE의 경우 다른 평가지표들(MSE, RMSE)에 비해 outlier에 상대적으로 둔감할 수 있다. 

 

2) MSE (Mean Squared Error) 

  • 실제 값과 예측 값의 오차의 제곱의 평균을 계산

MSE=1nni=1(yi^yi)2

오차에 제곱을 하기 때문에, 큰 오차에 더 큰 가중치가 주어져서, 오차에 비교적 민감한 평가지표이다.

 

3) RMSE(Root Mean Squared Error)

  • MSE 값의 제곱근

RMSE=MSE

RMSE는 MSE에 비해 상대적으로 오차에 덜 민감하지만, 스케일이 큰 데이터에 대해 오차의 크기를 줄여줌으로써 오차가 너무 커지는 것을 방지해주는 효과가 있다.

 

4) R2

  • 회귀 분석에서 의존 변수의 분산 중 모델로 설명할 수 있는 부분의 비율을 나타내는 통계적 측정치로, 0과 1 사이의 값을 가지며, 모델의 적합도를 평가하는 데 사용된다.

R2=1SSESST=1ni=1(yi^yi)2ni=1(yiˉy)2

 

R2 값이 1이면 모델이 데이터를 완벽하게 설명한다는 뜻이고, 0이면 모델이 데이터를 전혀 설명하지 못한다는 뜻이다.

 

2. Ridge Regression (릿지 회귀)

OLS 선형회귀의 과적합을 방지하게 위해 고안된 선형회귀 기법이다. 

 

ni=1(yi^yi)2+αni=1w2i

를 최소화하는 w 집합들을 구하게 되는데, 회귀 계수들에 페널티 가중치 α를 줌으로써, 회귀 계수가 너무 커지는 것을 방지한다.

 

Ridge 회귀는 모델을 안정화시킴으로써 예측에 대한 일반성을 잃지 않도록 도와주는데,  α값이 커질 수록 더 일반화를 많이 시킨다고 할 수 있다.

 

3. Lasso Regression (라쏘 회귀)

ni=1(yi^yi)2+αpj=1|wj|

 

릿지 회귀와 유사한 방식으로 학습을 시키지만, 릿지 회귀와의 차이점은 라쏘 회귀는 특정 회귀계수들을 0으로 보낼 수 있다는 점이다. 즉, 릿지 회귀는 독립변수를 제거하지 못하지만, 라쏘 회귀는 분석에 필요 없는 독립변수를 제거할 수 있다.

 

4. Elasticnet Regression 

Ridge와 Lasso를 합한 회귀 방식

 

ni=1(yi^yi)2+αni=1|wi|+αni=1w2i

 

다중공선성 문제를 해결할 수 있고, 변수 선택 능력이 릿지나 라쏘를 하나만 쓰는 경우보다 탁월하다.

 

 

5. Multi Collinearity (다중공선성)

독립변수들 간의 선형적인 상관관계를 나타내는 척도로, 만약 두 변수 간의 다중공선성이 높다면, 둘 중에 하나는 분석에 필요가 없다는 것을 의미한다.

5.1. 분산 팽창 지수 (VIF)

$$ \text{VIF_j}=\frac{1}{1R_j^2​}$$

 

여기서 R2j는 $번째 설명 변수가 모델의 다른 모든 설명 변수에 대해 수행한 회귀 분석의 결정 계수이다.

  • VIF = 1: 설명 변수 간에 아무런 상관 관계가 없음을 나타낸다.
  • 1 < VIF < 5: 일반적으로 낮은 공선성을 나타낸다.
  • VIF ≥ 5: 높은 공선성을 나타내며, 이 변수는 다른 변수와 높은 상관관계가 있음을 의미한다. 일부 학자들은 VIF가 10 이상일 때 심각한 다중 공선성이 있다고 본다. 

회귀 모델을 구축할 때, 높은 VIF 값을 가진 변수는 모델의 예측 성능과 해석을 방해할 수 있으므로, 이러한 변수를 모델에서 제거하거나, 변형하여 다시 분석하는 것을 고려할 수 있다.

 

 

 

<Python 실습>

Regression" target="_blank" rel="noopener" data-mce-href="http://Regression">http://Regression

 

GitHub - taekyounglee1224/Bitamin_ML: 빅데이터 연합동아리 Bitamin에서 진행한 실습 및 프로젝트

빅데이터 연합동아리 Bitamin에서 진행한 실습 및 프로젝트. Contribute to taekyounglee1224/Bitamin_ML development by creating an account on GitHub.

github.com