
1D 선형 회귀 — 정규방정식 (closed-form)
데이터 (x1,y1),…,(xn,yn) 을 가장 잘 지나는 직선 y=wx+b 를 찾습니다. MSE를 최소화하는 해는 미분 = 0 으로 닫힌 식(closed-form)이 존재합니다:
w=∑(xi−xˉ)2∑(xi−xˉ)(yi−yˉ),b=yˉ−wxˉ
분자는 공분산, 분모는 x의 분산. 즉 w=Cov(x,y)/Var(x).
과제
함수 fit(x, y) -> (w, b)를 완성하세요. 두 입력은 같은 길이의 1D 배열, 반환은 (float, float) 튜플.
- NumPy 벡터 연산만 사용.
- 반복 없이 한 줄 공식으로 계산 가능.
테스트 케이스
| # | 이름 | 데이터 | 기대 w | 기대 b |
|---|
| 1 | 기울기 1, 절편 0 | y = x | 1.0 | 0.0 |
| 2 | 기울기 2, 절편 1 | y = 2x + 1 | 2.0 | 1.0 |
| 3 | 음의 기울기 | y = -0.5x + 3 | -0.5 | 3.0 |
| 4 | 노이즈 포함 | 실제 w=1.5, b=0에 잡음 | ≈ 1.5 | ≈ 0 |