
Nearest Shrunken Centroid [medium]
v1 Nearest Centroid 는 각 클래스 평균을 그대로 사용. 고차원 (e.g., 유전자 발현 데이터 D>1000) 에서는 노이즈 특성의 편차도 그대로 반영 → overfitting.
Nearest Shrunken Centroid (Tibshirani et al. 2002): 전체 평균으로부터의 offset 을 soft-thresholding 으로 줄이거나 0 으로 → 유의미한 특성만 남김 (자동 특성 선택).
알고리즘
- xˉ = 전체 평균.
- 각 클래스 c 의 평균 μc 와 offset dc=μc−xˉ.
- 풀링된 표준편차 s (특성별):
sj=N−K∑c∑i:yi=c(xij−μc,j)2
- 표준화 offset: dc,j′=dc,j/(sj+s0) (small regularizer s0).
- Soft-threshold with Δ:
dc,j′′=sign(dc,j′)⋅max(∣dc,j′∣−Δ,0)
- 축소된 중심: μ~c,j=xˉj+sj⋅dc,j′′.
- 예측: x 와 μ~c 간 유클리드 거리 argmin.
Δ 효과
- Δ=0: v1 nearest centroid 와 동일.
- 큰 Δ: 대부분 성분이 0 → 모든 클래스가 전체 평균에 수렴 → 구분 불가.
- 중간 Δ: 판별력 있는 특성만 살림 → 노이즈 감쇠.
과제
함수 nearest_shrunken_centroid(X_train, y_train, X_test, delta) 를 완성하세요.
- 반환:
(M,) 예측.
- 풀링 표준편차 + soft-threshold + 축소 중심 거리 최소화.
- s0=1⋅10−8 (0 나눗셈 방지).
테스트 케이스
| # | 이름 | 검증 |
|---|
| 1 | 반환 shape (M,) | |
| 2 | delta=0 → v1 nearest centroid 와 일치 | |
| 3 | 분리 가능 2 클래스 → 높은 정확도 | |
| 4 | 고차원 + 노이즈 특성: shrinkage 가 과적합 감소 | |
| 5 | 큰 delta → 모든 축소 (0 에 가까움), 예측 임의 | |
| 6 | 클래스 레이블 복원 (0, 1, ..., K-1 을 벗어난 레이블도 처리) | |
| 7 | sklearn NearestCentroid(shrink_threshold=δ) 와 유사 정확도 | |