[chapter11] 최소제곱법 응용 : 실제 데이터를 활용한 최소제곱법
1. 다항식 회귀
다항식 회귀(polynomial regression)는 일반 회귀와 비슷하지만 독립변수인 x축 값을 더 높은 차수로 끌어올린 것이다.
즉 설계 행렬의 각 열 i는 $x^i$로 정의되며, 여기서 x는 일반적으로 시간 또는 공간이지만 인구와 같은 다른 변수일 수도 있다.
수학적 모델은 아래와 같다.
$$ y = \beta_0x^0 + \beta_1x^1 + \cdots + \beta_nx^n $$
여기서 $x^0 = 1$은 모델의 절편이 되는데, 이러한 경우를 제외하고는 예측 데이터와 관측 데이터 간의 제곱 차이를 최소화 하는 $\beta$ 값을 찾는 것이 목표인 일반 회귀 분석이다.
n차 다항식에는 절편을 포함해 n+1개의 회귀변수가 있으며, 다항식 함수는 관측 데이터를 모델링하기 위한 기저벡터이다.
특수한 설계 행렬을 제외하고 다항식 회귀는 다른 회귀와 완전히 동일하다.
왼쪽 역을 사용하여 회귀변수의 가중치 조합이 관측 데이터와 가장 잘 일치하도록 하는 계수 집합을 구한다.
ChatGPT와 다시 한 번 이해해보기 😅
다항식 회귀는 선형 회귀와 같은데, 입력값을 제곱, 세제곱 해서 사용하는 것이다.
앞에서 봤던 선형회귀는 아래와 같은 모습이다.
$$ y = \beta_0 + \beta_1x $$
그래프로 그리면 직선 형태이고, x가 커질수록 일정한 비율로 y가 변한다.
이 때 데이터가 곡선의 형태일때 다항식 회귀를 사용한다.
$$ y = \beta_0x^0 + \beta_1x^1 + \cdots + \beta_nx^n $$
요건 비선형 회귀라고 생각할 수 있는데, x에 대해선 곡선이나 $\beta$에 대해서는 선형이다.
설계행렬 관점으로 보면 X는 아래와 같다.
$$ X = \begin{bmatrix}
1 & x_1 & x^2_1 \\
1 & x_2 & x^2_2 \\
\vdots & \vdots & \vdots \\
\end{bmatrix} , \beta = \begin{bmatrix}
\beta_0 \\
\beta_1 \\
\beta_2
\end{bmatrix} $$
그래서 결국 $ y = X\beta + \epsilon$의 형태가 된다.
즉, 다항식 회귀는 $x, x^2, x^3$을 새로운 변수처럼 추가해 사용하는 형태가 된다.
실제 데이터를 적용해보면 아래와 같다.
# 설계 행렬
X = np.zeros((N,4))
# 열 4개(다항식 차수 3까지)
for i in range(4):
X[:,i] = np.array(year)**i
# np.linalg.lstsq = 최소제곱법
# doubleTime = 실제관측값
beta = np.linalg.lstsq(X,doubleTime, rcond=None)
# beta[0]이 계수임
yHat = X@beta[0]
실행하면 아래와 같이 나온다.
여기서 y1은 실제 데이터고, y2는 예측값이다.

곡선을 적합시키는데에 다항식 회귀는 일반적으로 많이 사용되며, Numpy에는 이러한 모델을 만들고 적합시키는 전용 함수가 있다.
beta = np.polyfit(year, doubleTime, 3) # 3차다항식
yHat = np.polyval(beta, year)
2. 그리드 서치로 모델 매개변수 찾기
최소제곱법은 정확하고 빠르지만, 선형 모델 적합에만 작동한다.
모델 매개변수 식별에는 또 다른 최적화 방법인 그리드 서치(격자 검색)가 있다.
그리드 서치는 매개변수 공간을 샘플링하고 각 매개변숫값으로 데이터에 대한 모델 적합도를 계산한 다음 최고의 모델 적합도를 가지는 매개변숫값을 선택한다.
예를 들어 $y = x^2$ 함수의 최솟값을 찾는다고 하면, 그리드 서치 기법에서는 시험에 사용할 미리 정의된 x값 집합으로 시작한다.
(-2, -1, 0, 1, 2) 집합을 정해두고, 이를 그리드(격자)라 한다.
그 다음 각 격잣값에 대한 함수를 계산하여 y = (4,1,0,1,4)를 얻는다. 그러면 x=0일 때 y가 최소가 된다는 것을 알 수 있다.
그러나 그리드 서치가 항상 최적의 해를 구한다고 보장할 수는 없다.
값 범위를 잘못 선택해 그리드를 (-1000, -990, -980, -970)이라고 가정한다면 x = -970일 때 최소화된다는 결론을 내릴 수 있다.
이처럼 그리드 서치에서는 범위와 해상도(격자 점 사이의 간격)가 모두 중요하다.
그리드 서치를 시각적으로 나타내면 아래 그림과 같다.

최소제곱법으로 해결된다면 굳이 그리드 서치를 사용할 필요가 없지만, 그리드 서치는 비선형 모델에서 매개변수를 찾는 데 유용한 기법이다.
그리드 서치는 딥러닝의 대규모 모델의 경우 시간이 많이 소요될 수 있지만 병렬화를 통해 더 효율적으로 수행할 수 있다.
결론적으로 그리드 서치는 선형 방법을 적용할 수 없을 때 데이터에 모델을 맞추기 위한 비선형 방법이다.
'수학 > 선형대수' 카테고리의 다른 글
| [개발자를 위한 실전 선형대수학] 12.1 고윳값과 고유벡터의 해석, 12.2 고윳값 구하기 (0) | 2026.02.10 |
|---|---|
| [개발자를 위한 실전 선형대수학] 11.1 날씨에 따른 자전거 대여량 예측 (0) | 2026.02.04 |
| [개발자를 위한 실전 선형대수학] Chapter 10 연습문제 (0) | 2026.02.03 |
| [개발자를 위한 실전 선형대수학] 10.1 일반 선형 모델, 10.2 GLM 풀이, 10.3 GLM의 간단한 예, 10.4 QR 분해를 통한 최소제곱법 (0) | 2026.01.30 |
| [개발자를 위한 실전 선형대수학] Chapter 9 연습문제 (1) | 2026.01.28 |