회귀란?
회귀라는 뜻은 어떤 지점으로 돌아간다는 뜻이다. 수많은 데이터들을 수집해보면 어떤 점, 즉 평균으로 돌아가게 되는데, 그 점들을 이어보면 하나의 직선을 이루게 되고 이것을 회귀 직선이라고 한다. 그리고 이 회귀 직선을 식으로 나타낸 것을 회귀식이라고 한다.
$$y = w_0 + w_1x_1 + w_2x_2 + \cdots + w_nx_n + \epsilon$$
- $y$: 독립변수의 영향을 받아 값이 변화하는 수로, 종속변수라 하고 주로 분석하고자 하는 대상이 된다.
- $x_i$: 다른 변수에 영향을 받지 않고 독립적으로 변화하는 수로, 독립변수라고 한다.
- $w_i$: 독립변수가 1 변할 때, 종속변수가 얼마나 변하는지 나타내는 수로, 회귀계수라고 부른다.
- $\epsilon$: 실제값과 회귀값의 차이에 따른 오류값, 즉 잔차
따라서 회귀의 목적은 데이터들을 가장 잘 설명할 수 있는 하나의 회귀선, 즉 회귀식을 찾는 것이라고 할 수 있다.
회귀의 종류
회귀 모델의 종류는 여러가지가 있는데, 설명 변수의 개수에 따라, 또 선형인지 아닌지에 따라 종류가 나뉘게 된다. 그중에서 모델의 형태가 선형인 것을 선형회귀라고 한다. 그렇다면 어떤 경우에 선형회귀라고 부르는 것일까?
선형모형은 모형식이 모수(파라미터)들의 선형함수로 주어지는 모형을 뜻한다. 회귀모형에서 모수는 회귀계수 $w_i$들을 의미하므로 회귀모형식이 $w_i$들의 선형함수, 즉 1차 결합이면 선형회귀모형이라고 한다.
$$y = w_0 + w_1x_1 + w_2x_2 + \cdots + w_nx_n + \epsilon$$
과 같은 다중회귀 식이 있다고 가정할 때,
$$y = f(x, w) + \epsilon$$ 과 같이 설명변수들을 회귀계수들의 벡터로 생각했을 때, 회귀식 $f(x, w)$의 $w_i$에 대한 편미분 $∂f/∂w_i$가 어느 회귀 계수도 포함하지 않으면 회귀식 $f(x,w)$를 모수 $w_i$에 대해 선형이라 한다. 즉, 모형식의 모든 회귀 계수 각각에 대해 편미분한 결과가 다른 회귀계수를 포함하지 않으면 선형모형이라고 한다.
그럼 이제 본격적으로 회귀 모델들에 대해 알아보도록 하겠다.
1. 선형 회귀 (Linear Regression)
- Linear Regression의 학습 목적은 종속 변수와 설명 변수 간의 관계를 가장 잘 나타낼 수 있는 선형식을 모델링하는 것이다.
- Linear Regression의 모델 추정을 위해서, 보통 예측값과 실제관측값인 잔차의 제곱을 최소화하는 최소제곱법(OLS)을 사용한다.
최소제곱법(OLS)
$$\text{OLS} = \sum_{i =1}^{n} (y_{i} - \hat{y}_i)^2$$
이 값이 최소가 되는 $w_i$들을 찾는 것이다.
단순 선형회귀에서는 다음과 같이 회귀 계수를 추정할 수 있다.
$$w_0 = \hat{y} - w_1\bar{x}$$
$$w_1 = \frac{\sum_{i=1}^{n} (x_i - \bar{x})(y_i - \bar{y})}{\sum_{i=1}^{n} (x_i - \bar{x})^2}$$
다중 선형회귀에서는 다음과 같이 회기 계수 행렬을 추정할 수 있다.
$$W = (X^TX)^{-1}X^TY$$
1.1 Linear Regression의 평가
1) MAE (Mean Absolute Error)
- 실제 값과 예측 값의 오차의 절댓값의 평균을 계산
$$\text{MAE} = \frac{1}{n}\sum_{i = 1}^{n} |y_i - \hat{y}_i|$$
MAE의 경우 다른 평가지표들(MSE, RMSE)에 비해 outlier에 상대적으로 둔감할 수 있다.
2) MSE (Mean Squared Error)
- 실제 값과 예측 값의 오차의 제곱의 평균을 계산
$$\text{MSE} = \frac{1}{n}\sum_{i=1}^{n} (y_i - \hat{y_i})^2$$
오차에 제곱을 하기 때문에, 큰 오차에 더 큰 가중치가 주어져서, 오차에 비교적 민감한 평가지표이다.
3) RMSE(Root Mean Squared Error)
- MSE 값의 제곱근
$$ \text{RMSE} = \sqrt{MSE}$$
RMSE는 MSE에 비해 상대적으로 오차에 덜 민감하지만, 스케일이 큰 데이터에 대해 오차의 크기를 줄여줌으로써 오차가 너무 커지는 것을 방지해주는 효과가 있다.
4) $R^2$
- 회귀 분석에서 의존 변수의 분산 중 모델로 설명할 수 있는 부분의 비율을 나타내는 통계적 측정치로, 0과 1 사이의 값을 가지며, 모델의 적합도를 평가하는 데 사용된다.
$$R^2 = 1 - \frac{SSE}{SST} = 1 - \frac{\sum_{i=1}^{n} (y_i - \hat{y_i})^2}{\sum_{i=1}^{n} (y_i - \bar{y})^2}
$$
$R^2$ 값이 1이면 모델이 데이터를 완벽하게 설명한다는 뜻이고, 0이면 모델이 데이터를 전혀 설명하지 못한다는 뜻이다.
2. Ridge Regression (릿지 회귀)
OLS 선형회귀의 과적합을 방지하게 위해 고안된 선형회귀 기법이다.
$$ \sum_{i=1}^{n} (y_i - \hat{y_i})^2 + \alpha\sum_{i =1}^{n} w_i^2$$
를 최소화하는 $w$ 집합들을 구하게 되는데, 회귀 계수들에 페널티 가중치 $\alpha$를 줌으로써, 회귀 계수가 너무 커지는 것을 방지한다.
Ridge 회귀는 모델을 안정화시킴으로써 예측에 대한 일반성을 잃지 않도록 도와주는데, $\alpha$값이 커질 수록 더 일반화를 많이 시킨다고 할 수 있다.
3. Lasso Regression (라쏘 회귀)
$$\sum_{i=1}^{n} (y_i - \hat{y_i})^2 + \alpha \sum_{j=1}^{p} |w_j|$$
릿지 회귀와 유사한 방식으로 학습을 시키지만, 릿지 회귀와의 차이점은 라쏘 회귀는 특정 회귀계수들을 0으로 보낼 수 있다는 점이다. 즉, 릿지 회귀는 독립변수를 제거하지 못하지만, 라쏘 회귀는 분석에 필요 없는 독립변수를 제거할 수 있다.
4. Elasticnet Regression
Ridge와 Lasso를 합한 회귀 방식
$$ \sum_{i=1}^{n} (y_i - \hat{y_i})^2 + \alpha\sum_{i =1}^{n} |w_i| + \alpha\sum_{i =1}^{n} w_i^2$$
다중공선성 문제를 해결할 수 있고, 변수 선택 능력이 릿지나 라쏘를 하나만 쓰는 경우보다 탁월하다.
5. Multi Collinearity (다중공선성)
독립변수들 간의 선형적인 상관관계를 나타내는 척도로, 만약 두 변수 간의 다중공선성이 높다면, 둘 중에 하나는 분석에 필요가 없다는 것을 의미한다.
5.1. 분산 팽창 지수 (VIF)
$$ \text{VIF_j}=\frac{1}{1−R_j^2}$$
여기서 $R_j^2$는 $번째 설명 변수가 모델의 다른 모든 설명 변수에 대해 수행한 회귀 분석의 결정 계수이다.
- VIF = 1: 설명 변수 간에 아무런 상관 관계가 없음을 나타낸다.
- 1 < VIF < 5: 일반적으로 낮은 공선성을 나타낸다.
- VIF ≥ 5: 높은 공선성을 나타내며, 이 변수는 다른 변수와 높은 상관관계가 있음을 의미한다. 일부 학자들은 VIF가 10 이상일 때 심각한 다중 공선성이 있다고 본다.
회귀 모델을 구축할 때, 높은 VIF 값을 가진 변수는 모델의 예측 성능과 해석을 방해할 수 있으므로, 이러한 변수를 모델에서 제거하거나, 변형하여 다시 분석하는 것을 고려할 수 있다.
<Python 실습>
Regression" target="_blank" rel="noopener" data-mce-href="http://Regression">http://Regression
'AI & Data > Machine Learning' 카테고리의 다른 글
[머신러닝] 앙상블 (Ensemble) (0) | 2024.04.29 |
---|---|
[머신러닝] 분류 (Classification) (1) | 2024.03.25 |
[머신러닝] 평가지표(Evaluation) (7) | 2024.03.14 |
[머신러닝] 사이킷런(Scikit - Learn) 라이브러리 part 2 : 데이터 전처리, 교차검증 (0) | 2024.03.04 |
[머신러닝] 사이킷런(Scikit-Learn) 라이브러리 part1 : 프레임워크, train_test_split (0) | 2024.02.13 |