← 문제 목록/Weighted 1D Linear Regression [medium]
문제 해설

Weighted 1D Linear Regression [medium]

회귀 · medium

preview

Weighted 1D Linear Regression [medium]

v1 1D 선형회귀 는 모든 점을 동등하게. Weighted Least Squares (WLS) 는 샘플별 신뢰도/중요도가 다를 때:

minw,bici(wxi+byi)2\min_{w, b} \sum_i c_i (w x_i + b - y_i)^2

ci0c_i \ge 0 은 샘플 ii 의 가중치. Closed-form:

xˉw=cixici,yˉw=ciyici\bar{x}_w = \frac{\sum c_i x_i}{\sum c_i}, \quad \bar{y}_w = \frac{\sum c_i y_i}{\sum c_i} w=ci(xixˉw)(yiyˉw)ci(xixˉw)2,b=yˉwwxˉww = \frac{\sum c_i (x_i - \bar{x}_w)(y_i - \bar{y}_w)}{\sum c_i (x_i - \bar{x}_w)^2}, \quad b = \bar{y}_w - w \, \bar{x}_w

언제 쓰이나

  • 이분산(heteroscedastic) 노이즈: 측정 오차가 샘플마다 다름 → ci1/σi2c_i \propto 1/\sigma_i^2.
  • Importance sampling 보정.
  • Robust regression 의 반복 재가중 (IRLS) 한 스텝.

주의

  • 분모가 0 (모든 cixic_i x_i 가 같은 값) — 분산 0 → 해 없음. 이 문제는 정상 입력 가정.
  • ci=1c_i = 1 균등이면 v1 과 완전히 동일.

과제

함수 fit_weighted(x, y, c) 를 완성하세요.

  • x, y, c shape (N,), ci0c_i \ge 0.
  • 반환: (slope, intercept) — Python float 튜플.
  • 루프 금지. 벡터 연산만.

테스트 케이스

#이름검증
1반환 타입 (float, float)
2c=1c=1 → v1 결과와 일치
3한 점만 가중치 ↑ → 그 점 통과 쪽으로 기울기
4가중치 0인 점은 무시이상치에 c=0 → 깨끗한 fit
5손계산 3점
6루프 금지
코드 작성
Loading...
실행 결과

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