← 문제 목록/거리 가중 KNN 회귀
문제 해설

거리 가중 KNN 회귀

회귀 · easy

preview

거리 가중 KNN 회귀

47번 KNN 회귀k 이웃을 똑같이 평균 했습니다. 하지만 "더 가까운 이웃이 더 믿을 만하다" 는 직관을 살리면 거리의 역수로 가중 평균 하는 게 자연스럽죠:

y^(x)=itop-k(x)wiyiitop-k(x)wi,wi=1di+ε\hat{y}(\mathbf{x}) = \frac{\sum_{i \in \text{top-}k(\mathbf{x})} w_i y_i}{\sum_{i \in \text{top-}k(\mathbf{x})} w_i}, \qquad w_i = \frac{1}{d_i + \varepsilon}

ε\varepsilon 은 0 으로 나눔 방지용 (1e-10). 이렇게 하면:

  • 훈련점과 정확히 같은 테스트점 → 그 점의 y 로 수렴.
  • 먼 이웃의 영향은 자동으로 작아짐 → 더 부드러운 곡선.

sklearn KNeighborsRegressor(weights='distance') 와 동일.

과제

함수 predict_weighted(X_train, y_train, X_test, k) 를 완성하세요.

  • X_train (N, D), y_train (N,), X_test (M, D).
  • 반환: (M,) float — 거리 가중 평균 예측.

테스트 케이스

#이름검증
1shape(M,)
2k=1 + 같은 점 → 자기 y
3상수 target → 상수 예측
4가중 vs 일반: 가까운 이웃 영향 ↑하나는 값 10, 다른 하나는 0, 쿼리가 첫 번째에 가까우면 가중≈10
5각 가중치 > 0
코드 작성
Loading...
실행 결과

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