🔗 관련 문서: Wikipedia - 회귀 분석
회귀(Regression)는 독립변수(특성, feature)와 종속변수(레이블, label) 사이의 관계를 함수식으로 모델링하여, 새로운 입력값에 대한 연속적인 수치를 예측하는 지도학습(Supervised Learning) 기법이다.
예를 들어 집의 크기, 방의 개수, 위치 등의 특성(x)을 이용해 집값(y)을 예측하거나, 공부 시간을 이용해 시험 점수를 예측하는 문제가 회귀에 해당한다. 회귀 모델은 학습 데이터에 가장 잘 들어맞는 함수(직선, 곡선 등)를 찾아내고, 이 함수를 이용해 아직 정답을 모르는 새로운 데이터의 값을 추정한다.
지도학습은 예측하려는 값의 형태에 따라 회귀(Regression)와 분류(Classification)로 구분된다.
| 구분 | 회귀 (Regression) | 분류 (Classification) |
|---|---|---|
| 예측 대상 | 연속적인 수치(실수값) | 이산적인 범주(클래스) |
| 출력 예시 | 집값 3억 2천만 원, 기온 23.5°C | 스팸/정상, 고양이/개/새 |
| 대표 알고리즘 | 선형 회귀, 다항 회귀, 라쏘/릿지 회귀 | 로지스틱 회귀, 의사결정나무, SVM |
| 평가지표 | MSE, RMSE, MAE, R² | 정확도, 정밀도, 재현율, F1-score |
선형 회귀는 독립변수와 종속변수 사이의 관계를 직선(1차 함수) 형태로 가정하고 모델링하는 가장 기본적인 회귀 기법이다.
독립변수가 1개일 때 사용하며, 다음과 같은 식으로 표현한다. $$ y = wx + b $$
독립변수가 2개 이상일 때 사용하며, 다음과 같이 확장된다. $$ y = w_1x_1 + w_2x_2 + \cdots + w_nx_n + b $$
선형 회귀는 실제값과 예측값의 차이(오차)의 제곱합을 최소화하는 방향으로 w, b를 학습한다. 이때 사용하는 오차 함수(비용 함수)를 평균제곱오차(MSE, Mean Squared Error)라고 한다. $$ MSE = \frac{1}{n}\sum_{i=1}^{n}(y_i - \hat{y}_i)^2 $$ 여기서 yi는 실제값, ŷi는 모델의 예측값이다. 이 비용 함수를 최소화하는 방법으로는 해석적으로 바로 계산하는 최소제곱법과, 반복적으로 조금씩 값을 갱신하는 경사하강법(Gradient Descent)이 있다.
데이터가 직선이 아니라 곡선 형태의 관계를 가질 때, 독립변수의 거듭제곱 항을 추가하여 곡선 형태로 모델링하는 기법이다. $$ y = w_1x + w_2x^2 + w_3x^3 + \cdots + b $$
로지스틱 회귀는 이름에 "회귀"가 포함되어 있지만, 실제로는 이진 분류(Binary Classification)에 널리 사용되는 대표적인 알고리즘이다. 어떤 데이터가 특정 클래스에 속할 확률을 예측하는 데 사용된다.
선형 회귀식(wx+b)의 결과는 (-∞, ∞) 범위의 실수값이므로, 이를 그대로 확률로 사용할 수 없다. 로지스틱 회귀는 이 값을 시그모이드 함수에 통과시켜 0과 1 사이의 확률값으로 변환한다. $$ \sigma(z) = \frac{1}{1+e^{-z}}, \quad z = wx+b $$ 시그모이드 함수를 통과한 출력값이 특정 임계값(보통 0.5)보다 크면 1(양성), 작으면 0(음성)으로 분류한다.
로짓 변환(Logit Transformation)은 0과 1 사이의 확률값(p)을 음의 무한대(-∞)에서 양의 무한대(+∞) 범위의 값으로 바꾸는 수학적 변환 공식이다. 데이터 분석이나 머신러닝의 로지스틱 회귀 분석에서 종속변수와 독립변수 간의 관계를 직선 형태(선형 결합)로 모델링하기 위해 필수적으로 사용된다.
로지스틱 회귀는 반대 방향으로, 성공 확률 p에 로짓(logit) 변환을 적용하여 선형결합 형태로 모델링한다고도 설명할 수 있다. $$ \log\left(\frac{p}{1-p}\right) = w_1x_1 + w_2x_2 + \cdots + b $$ 즉, 확률의 오즈(odds, p/(1-p))에 로그를 취한 값을 독립변수들의 선형결합으로 표현하는 것이다.
선형 회귀는 오차의 제곱합(MSE)을 최소화하는 최소제곱법을 사용하지만, 로지스틱 회귀는 관측된 데이터가 나타날 확률(우도, likelihood)을 최대화하는 최대우도추정(MLE, Maximum Likelihood Estimation)을 통해 가중치를 구한다. 실제 계산에서는 로그우도를 손실 함수(로그 손실, log loss)로 바꾸고, 이를 최소화하기 위해 경사하강법(Gradient Descent) 등을 사용한다.
선형 회귀가 학습 데이터에 과도하게 맞춰져 과대적합되는 것을 방지하기 위해, 비용 함수에 가중치 크기에 대한 페널티 항을 추가한 회귀 기법들이다.
가중치의 절댓값에 비례하는 페널티를 추가하며, 일부 가중치를 정확히 0으로 만들어 변수 선택(Feature Selection) 효과도 얻을 수 있다. $$ Cost = MSE + \lambda \sum_{i=1}^{n} |w_i| $$
가중치의 제곱에 비례하는 페널티를 비용 함수에 추가하여, 가중치 값이 지나치게 커지지 않도록 제한한다. $$ Cost = MSE + \lambda \sum_{i=1}^{n} w_i^2 $$
L1 규제와 L2 규제를 혼합 비율(mixing ratio) r에 따라 함께 적용하는 기법으로, 라쏘의 변수 선택 효과와 릿지의 안정적인 축소 효과를 동시에 노릴 때 사용한다. $$ Cost = MSE + \lambda \left[\, r\sum_{i=1}^{n} |w_i| + (1-r)\sum_{i=1}^{n} w_i^2 \,\right], \quad 0 \le r \le 1 $$ 혼합 비율 r(흔히 l1_ratio 또는 α로 표기)이 1에 가까울수록 L1(Lasso)에 가깝게, 0에 가까울수록 L2(Ridge)에 가깝게 동작한다.
위 식들에서 공통적으로 등장하는 λ(람다)는 규제의 강도를 조절하는 하이퍼파라미터로, λ가 클수록 규제가 강해져 모델이 단순해진다.
| 구분 | 라쏘 (Lasso, L1) | 릿지 (Ridge, L2) | 엘라스틱넷 (Elastic Net) |
|---|---|---|---|
| 페널티 항 | 가중치 절댓값 합 | 가중치 제곱합 | 절댓값 합 + 제곱합 혼합 |
| 가중치를 정확히 0으로 만듦 | 가능 (변수 선택) | 거의 없음 | 혼합 비율에 따라 가능 |
| 주요 효과 | 변수 선택 + 과대적합 완화 | 가중치 축소로 과대적합 완화 | 변수 선택 + 안정적 축소 |
| 상관관계 높은 변수 처리 | 하나만 남기고 나머지는 0 | 비슷한 비중으로 함께 축소 | 두 방식의 절충 |
회귀 모델은 분류 모델과 달리 정답을 맞혔는지 여부가 아니라, 예측값과 실제값이 얼마나 가까운지를 기준으로 평가한다.
| 지표 | 설명 | 수식 |
|---|---|---|
| MSE (평균제곱오차) |
오차를 제곱하여 평균, 큰 오차에 민감함 | $\frac{1}{n}\sum(y_i-\hat{y}_i)^2$ |
| RMSE (평균제곱근오차) |
MSE에 제곱근을 취해 원래 단위로 해석 가능 | $\sqrt{MSE}$ |
| MAE (평균절대오차) |
오차의 절댓값을 평균, 이상치에 덜 민감함 | $\frac{1}{n}\sum|y_i-\hat{y}_i|$ |
| R² (결정계수) | 모델이 데이터의 분산을 얼마나 설명하는지 나타냄 (1에 가까울수록 좋음) | $1-\frac{\sum(y_i-\hat{y}_i)^2}{\sum(y_i-\bar{y})^2}$ |
로지스틱 회귀에 대한 설명으로 옳은 것만을 모두 고르면?
ㄱ. 이진분류에 사용하지 않는 알고리즘이다.
ㄴ. 예측값을 변환할 때 시그모이드 함수를 사용한다.
ㄷ. 종속변수에 로그를 적용하는 로짓(logit) 변환을 사용한다.
ㄹ. 최적해를 구하기 위해서 최소제곱법을 사용한다.
정답: ② ㄴ, ㄷ
따라서 옳은 것만 모은 ㄴ, ㄷ이 정답이다.
선형 회귀의 정규화(regularization) 기법에 대한 설명으로 옳지 않은 것은?
정답: ④
따라서 옳지 않은 것은 ④이다.