← 문제 목록/1D 선형 회귀 (정규방정식)

1D 선형 회귀 (정규방정식)

회귀 · medium

preview

1D 선형 회귀 — 정규방정식 (closed-form)

데이터 (x1,y1),,(xn,yn)(x_1, y_1), \dots, (x_n, y_n) 을 가장 잘 지나는 직선 y=wx+by = wx + b 를 찾습니다. MSE를 최소화하는 해는 미분 = 0 으로 닫힌 식(closed-form)이 존재합니다:

w=(xixˉ)(yiyˉ)(xixˉ)2,b=yˉwxˉw = \frac{\sum (x_i - \bar{x})(y_i - \bar{y})}{\sum (x_i - \bar{x})^2}, \qquad b = \bar{y} - w \bar{x}

분자는 공분산, 분모는 xx분산. 즉 w=Cov(x,y)/Var(x)w = \mathrm{Cov}(x, y) / \mathrm{Var}(x).

과제

함수 fit(x, y) -> (w, b)를 완성하세요. 두 입력은 같은 길이의 1D 배열, 반환은 (float, float) 튜플.

  • NumPy 벡터 연산만 사용.
  • 반복 없이 한 줄 공식으로 계산 가능.

테스트 케이스

#이름데이터기대 w기대 b
1기울기 1, 절편 0y = x1.00.0
2기울기 2, 절편 1y = 2x + 12.01.0
3음의 기울기y = -0.5x + 3-0.53.0
4노이즈 포함실제 w=1.5, b=0에 잡음≈ 1.5≈ 0
Loading...

코드를 작성하고 Run 을 눌러보세요.