AI/Machine Learning

다중 회귀(Multiple Regression)의 정규 방정식(Normal Equation)

comflex 2025. 3. 29. 15:37
728x90
반응형

다중 회귀(Multiple Regression)의 정규 방정식(Normal Equation)

1. 다중 회귀란?

다중 회귀(Multiple Regression)는 독립 변수(X)가 두 개 이상인 선형 회귀 모델을 의미합니다. 단순 선형 회귀(Simple Linear Regression)가 하나의 독립 변수만을 사용하는 것과 달리, 다중 회귀는 여러 개의 독립 변수를 활용하여 종속 변수(Y)를 예측합니다.

수학적으로 다중 회귀 모델은 다음과 같이 표현됩니다:
$$
Y = \beta_0 + \beta_1 X_1 + \beta_2 X_2 + \dots + \beta_n X_n + \epsilon
$$
여기서:

  • $Y$ : 종속 변수 (Target Variable)
  • $X_1, X_2, ..., X_n$ : 독립 변수 (Feature Variables)
  • $\beta_0$ : 절편 (Intercept)
  • $\beta_1, \beta_2, ..., \beta_n$ : 회귀 계수 (Regression Coefficients)
  • $\epsilon$ : 오차 (Error Term)

2. 정규 방정식(Normal Equation) 이란?

정규 방정식(Normal Equation)은 다중 회귀 분석에서 최적의 회귀 계수를 계산하는 공식적인 해석적 방법입니다. 이는 경사 하강법(Gradient Descent)과 같은 반복적인 최적화 방법 없이 직접 최적의 매개변수를 찾을 수 있도록 해줍니다.

정규 방정식은 다음과 같이 정의됩니다:

$$\beta = (X^T X)^{-1} X^T Y$$

여기서:

  • X : 독립 변수의 디자인 행렬 (Design Matrix) (각 행은 하나의 샘플, 각 열은 하나의 특성을 나타냄)
  • $Y$ : 종속 변수 벡터
  • $\beta$ : 회귀 계수 벡터 (모델이 학습할 가중치)
  • $X^T$ : X의 전치 행렬 (Transpose of X)
  • $(X^T X)^{-1}$: X의 전치 행렬과 X의 곱의 역행렬 (Inverse Matrix)

이 방정식을 사용하면 경사 하강법을 사용하지 않고도 최적의 회귀 계수를 한 번의 연산으로 구할 수 있습니다.


반응형
728x90

3. 정규 방정식 구현 (Python 예제)

다중 회귀에서 정규 방정식을 사용하여 최적의 회귀 계수를 구하는 방법을 Python 코드로 살펴보겠습니다.

import numpy as np
from sklearn.datasets import make_regression

# 샘플 데이터 생성 (100개의 샘플, 3개의 특성)
X, y = make_regression(n_samples=100, n_features=3, noise=10, random_state=42)

# X에 절편(Intercept) 항 추가
X_b = np.c_[np.ones((X.shape[0], 1)), X]  # 열 방향으로 1을 추가 (bias term)

# 정규 방정식 적용
theta_best = np.linalg.inv(X_b.T.dot(X_b)).dot(X_b.T).dot(y)

print("최적의 회귀 계수:", theta_best)

위 코드에서는 np.linalg.inv() 함수를 이용하여 ($X^T X)^{-1}$ 을 계산하고, 이를 통해 최적의 회귀 계수를 구합니다.


4. 정규 방정식의 장점과 단점

장점:

  • 경사 하강법과 달리 학습률(Learning Rate) 설정이 필요 없음
  • 반복적인 학습 과정 없이 한 번의 계산으로 최적 해를 구할 수 있음

단점:

  • $(X^T X)^{-1}$의 계산이 필요하므로, 특성(feature)의 개수가 많아지면 계산 비용이 증가함 (행렬 역행렬 연산의 복잡도: $O(n^3)$)
  • 다중 공선성(multicollinearity) 문제가 발생할 경우, 역행렬이 존재하지 않을 수도 있음

5. 결론

정규 방정식은 다중 선형 회귀에서 최적의 회귀 계수를 구하는 강력한 방법입니다. 그러나 데이터가 매우 클 경우 역행렬 계산의 비용이 높아질 수 있기 때문에, 일반적으로 경사 하강법(Gradient Descent)이나 정규화된 방법(Ridge Regression, Lasso Regression)과 함께 사용됩니다.

728x90
반응형