단변수 선형 회귀와 R² (결정계수) 완전 정리
단변수 선형 회귀는 하나의 입력값($\mathbf{x}$)만으로 하나의 출력값($\mathbf{y}$)을 예측하는 가장 기본적인 머신러닝 모델입니다. 예를 들어, 키($\mathbf{x}$)로 몸무게($\mathbf{y}$)를 예측하는 것과 같은 구조죠. 지금부터 단변수 선형 회귀를 공부할 때 꼭 알아야 할 핵심 개념들을 살펴보겠습니다.
일반 함수 vs 머신러닝에서의 함수
구분 | 일반 수학 함수 | 머신러닝 함수 |
---|---|---|
목적 | $\mathbf{y}$ 계산 | $\mathbf{W}$, $\mathbf{b}$ 학습 |
입력 | $\mathbf{x}$ | $\mathbf{x}$ (입력 데이터) |
출력 | $\mathbf{y}$ | $\mathbf{y}$ (정답 레이블) |
미지수 | $\mathbf{x}$, $\mathbf{y}$ | $\mathbf{W}$ (기울기), $\mathbf{b}$ (절편) |
일반 수학에서는 $\mathbf{y=ax+b}$ 형태에서 $\mathbf{x}$를 넣으면 $\mathbf{y}$가 무엇인지 계산합니다. 하지만 머신러닝에서는 이미 주어진 ($\mathbf{x,y}$) 데이터를 바탕으로 **$\mathbf{W}$ (가중치)**와 $\mathbf{b}$ (편향) 값을 찾아내는 것이 목표입니다. 이 $\mathbf{W}$와 $\mathbf{b}$가 바로 모델의 "학습된 지식"이 됩니다.
단변수 선형 회귀 모델 구조
머신러닝에서의 단변수 선형 회귀 모델은 다음과 같은 형태를 가집니다:
$$\mathbf{\hat{y} = Wx + b}$$
- $\mathbf{x}$: 모델에 주어지는 단일 입력 데이터입니다. 우리가 예측하려는 출력값($\mathbf{\hat{y}}$)에 영향을 미치는 **독립 변수 또는 특성(feature)**을 나타냅니다. 예를 들어, 키로 몸무게를 예측할 때 $\mathbf{x}$는 '키'가 됩니다.
- $\mathbf{\hat{y}}$: 모델이 $\mathbf{x}$를 바탕으로 예측한 출력값입니다. 실제 정답 $\mathbf{y}$와 구분하기 위해 $\mathbf{\hat{y}}$로 표기합니다.
- $\mathbf{W}$: **가중치(Weight)**입니다. 입력 $\mathbf{x}$가 출력 $\mathbf{\hat{y}}$에 미치는 영향력의 크기와 방향을 나타냅니다. $\mathbf{x}$가 한 단위 변할 때 $\mathbf{\hat{y}}$가 얼마나 변하는지를 의미합니다.
- $\mathbf{b}$: **편향(Bias)**입니다. 입력 $\mathbf{x}$가 0일 때의 $\mathbf{\hat{y}}$ 값, 즉 기본적인 출력값을 나타냅니다.
손실 함수 (비용 함수)
선형 회귀에서 예측값과 실제값의 차이를 측정하는 기준은 **MSE (Mean Squared Error, 평균 제곱 오차)**를 사용합니다.
MSE 공식:
$$\mathbf{MSE = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y}_i)^2}$$
- $\mathbf{y_i}$: i번째 실제 값
- $\mathbf{\hat{y}_i}$: i번째 예측 값
- $\mathbf{n}$: 데이터 개수
MSE 값이 작을수록 예측이 실제값에 가깝다는 의미입니다. 머신러닝 모델은 이 손실 함수의 값을 최소화하기 위해 $\mathbf{W}$와 $\mathbf{b}$를 반복적으로 업데이트(학습)합니다. 이는 예측선이 실제 데이터 포인트에 가장 잘 맞도록 $\mathbf{W}$와 $\mathbf{b}$를 조정하는 과정입니다.
정확도 평가 지표: 결정계수 (R² Score)
머신러닝 모델이 얼마나 정확하게 예측하는지를 평가하기 위해 **결정계수($\mathbf{R^2}$)**를 사용합니다. $\mathbf{R^2}$ 점수는 모델이 데이터의 분산을 얼마나 잘 설명하는지를 나타내는 지표입니다.
$\mathbf{R^2}$ Score 공식:
$$\mathbf{R^2 = 1 - \frac{SSE}{SST}}$$
- SSE (Sum of Squares for Error): 예측값과 실제값 사이의 오차 제곱합
$$\mathbf{SSE = \sum_{i=1}^{n} (y_i - \hat{y}_i)^2}$$
이 값은 모델이 실제값을 얼마나 잘 예측하지 못했는지를 나타냅니다. 모델의 오차가 클수록 SSE가 커집니다. SSE가 0에 가까울수록 모델의 예측이 완벽하다는 의미입니다. - SST (Sum of Squares Total): 실제값과 평균값 사이의 오차 제곱합
$$\mathbf{SST = \sum_{i=1}^{n} (y_i - \bar{y})^2}$$
($\mathbf{\bar{y}}$는 실제값들의 평균) - 이는 데이터 자체의 총 변동성, 즉 분산 정도를 나타냅니다. 모델이 없다고 가정했을 때(단순히 평균으로 예측할 때)의 오차라고 볼 수 있습니다.
요약하면, $\mathbf{R^2}$는 이렇게 표현할 수 있습니다:
$$\mathbf{R^2 = 1 - \frac{예측값에\ 대한\ 오차\ 제곱합}{데이터\ 자체의\ 분산\ 합}}$$
$\mathbf{R^2}$ Score 해석 및 중요 특징
$\mathbf{R^2}$ 값은 모델이 설명할 수 있는 분산의 비율을 의미합니다.
- $\mathbf{R^2 = 1}$: 모델이 데이터를 완벽하게 예측합니다. 예측 오차(SSE)가 0에 가까워 모든 실제 데이터 포인트가 예측 직선 위에 놓인 경우입니다. 이는 모델이 데이터의 모든 변동성을 설명한다는 의미입니다.
- $\mathbf{R^2 = 0}$: 모델의 예측이 실제값의 평균을 예측하는 것과 같은 수준입니다. 모델을 학습시키지 않은 상태와 유사하며, SSE가 SST와 거의 같아 모델이 데이터의 변동성을 전혀 설명하지 못하는 경우입니다.
- $\mathbf{0 < R^2 < 1}$: 모델의 예측이 평균보다는 낫지만 완벽하진 않습니다. $\mathbf{R^2}$ 값이 1에 가까울수록 모델의 예측력이 좋다고 판단합니다. 이는 모델이 데이터 변동성 중 상당 부분을 설명하고 있음을 의미합니다.
- $\mathbf{R^2}$는 음수 값이 될 수도 있습니다. 만약 모델의 예측 성능이 평균으로 예측하는 것보다도 더 나쁜 경우 (즉, SSE가 SST보다 훨씬 큰 경우), $\mathbf{R^2}$ 값은 음수가 나올 수 있습니다. 이는 모델이 데이터에 전혀 맞지 않거나 잘못 학습되었을 가능성이 매우 크다는 것을 나타냅니다. 따라서 $\mathbf{R^2}$는 항상 0과 1 사이의 값만 가지는 것이 아니며, 음수 값은 매우 좋지 않은 모델 성능을 의미합니다.
중요한 특징:
- SST는 학습 전후로 동일합니다. SST는 원래 데이터들의 평균을 기준으로 계산되므로, 모델이 학습되면서 예측값이 달라져도 실제 데이터와 그 평균은 변하지 않기 때문입니다.
- SSE는 학습이 잘 될수록 줄어듭니다. 예측 직선이 실제 데이터 포인트에 가까워질수록 예측 오차가 줄어들고, 그에 따라 SSE는 0에 가까워집니다.
$\mathbf{R^2}$ 계산 방법 (Python)
Python의 sklearn
라이브러리를 사용하면 $\mathbf{R^2}$ 값을 쉽게 계산할 수 있습니다.
from sklearn.metrics import r2_score
# 예시 데이터 (실제 값과 모델의 예측 값)
y_true = [3, 5, 7, 9, 11] # 실제 값 리스트
y_pred = [3.2, 4.8, 7.1, 9.3, 10.9] # 모델이 예측한 값 리스트
r2 = r2_score(y_true, y_pred)
print(f"R-squared Score: {r2}")
y_true
: 실제 값(정답 레이블) 리스트y_pred
: 모델이 예측한 값 리스트- 반환값: 일반적으로 0에서 1 사이의 float 값(결정계수)이 반환되지만, 모델 성능이 매우 나쁠 경우 음수가 반환될 수도 있습니다.
요약
머신러닝에서 함수는 주어진 데이터를 기반으로 $\mathbf{W}$ (가중치)와 $\mathbf{b}$ (편향)를 학습하는 것이 목표입니다. 단변수 선형 회귀는 하나의 입력 $\mathbf{x}$로 하나의 출력 $\mathbf{\hat{y}}$를 예측하는 가장 기본적인 모델입니다. 모델의 오차 측정에는 MSE(평균 제곱 오차)를, 모델 평가에는 $\mathbf{R^2}$ 결정계수를 사용합니다. $\mathbf{R^2}$ 값은 모델의 예측력이 얼마나 좋은지를 수치로 보여주는 지표입니다. $\mathbf{R^2=1}$에 가까울수록 잘 학습된 모델이며, 이는 모델이 데이터의 변동성을 잘 설명하고 예측 오차가 적음을 의미합니다.
'머신러닝&딥러닝' 카테고리의 다른 글
KNN (K-최근접 이웃) 완벽 정리: 개념부터 코드, 시각화까지 한 번에 이해하기 (2) | 2025.07.07 |
---|---|
[머신러닝] 간단한 당뇨병 예측: 단변수·다변수 선형 회귀 실습부터 시각화·정확도 평가까지 (0) | 2025.07.06 |
[딥러닝] 오차 역전파의 구조와 수학적 해석: Forward 계산부터 Chain Rule, 시그모이드 미분까지 (3) | 2025.07.03 |
[딥러닝] 딥러닝 학습의 핵심 개념 총정리: 경사하강법부터 손실 함수까지 (0) | 2025.07.02 |
[딥러닝] 신경망 뉴런 구조와 Activation Function 정리 (0) | 2025.07.02 |