개념 정리
정규 방정식 normal equation
명징직조지훈
2022. 10. 26. 05:41
선형 회귀 모델에서 각 피처의 가중치와 편향을 구해야 한다. 이는 가중치 w 벡터로 표현
가중치는 트레이닝 데이터로부터 최소 제곱법을 사용해 구할 수 있다. 최소 제곱법은 오차의 제곱합이 최소가 되는 추정량을 구하는 방법,
먼저 전체 식에서 오차를 구하면 아래와 같다.
실제 타깃 데이터값 y는 학습을 통해 구한 모형에 오차를 더한 값
오차 제곱합의 표현
최소 제곱법을 사용해 구한 가중치를 최소 제곱 추정량 least squareds estimator 이라고 하고 이를 행렬로 확장하면 다음과 같다.
![]() |
![]() |
![]() |
행렬 X는 데이터 x와 b를 합친 형태, 가중치 벡터도 기존 가중치와 b를 합친 형태
행렬 X는 (n, (p+1)) 차원이며, 타깃 벡터 y는 (n, 1) 차원, 가중치 벡터는 (p+1, 1) 차원이다.
이를 다시 수식으로 표현, y = Xw
이 수식을 최적화해 구한 가중치의 추정량은 아래와 같다 argmin

실제 값과 예측 값의 차이의 제곱, 오차 제곱 합이 최소가되는 함수

서로가 서로를 전치한 행렬이므로 스칼라 값이 동일, 합칠 수 있다.
최적의 가중치를 귀하려면 위 식의 미분 값이 0이 되어야 한다.

위 식이 0이 되기 위한 값
파이썬 구현
X = 2 * np.random.rand(100,1)
y = 4 + 3 * X + np.random.randn(100,1)
X_b = np.c_[np.ones((100, 1)), X]
theta_best = np.linalg.inv(X_b.T.dot(X_b)).dot(X_b.T).dot(y)
theta_best
>>>
array([[4.27935698],
[2.91138471]])