
47번 KNN 회귀 는 k 이웃을 똑같이 평균 했습니다. 하지만 "더 가까운 이웃이 더 믿을 만하다" 는 직관을 살리면 거리의 역수로 가중 평균 하는 게 자연스럽죠:
은 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 — 거리 가중 평균 예측.| # | 이름 | 검증 |
|---|---|---|
| 1 | shape | (M,) |
| 2 | k=1 + 같은 점 → 자기 y | |
| 3 | 상수 target → 상수 예측 | |
| 4 | 가중 vs 일반: 가까운 이웃 영향 ↑ | 하나는 값 10, 다른 하나는 0, 쿼리가 첫 번째에 가까우면 가중≈10 |
| 5 | 각 가중치 > 0 |
코드를 작성하고 Run 을 눌러보세요.