실습 · 연습문제 1개
예측 모델 착취를 수치로 재기 optimizer-curse
생성·최적화로 만든 후보들의 예측 물성 pred와 (검증으로 얻은) 참 물성 true가 있다. 예측값을 기준으로 상위 개를 "유망 후보"로 고를 때, 그 후보들에서 예측이 참보다 얼마나 낙관적인지를 재는 함수 selection_bias(pred, true, k)를 완성한다.
여기서 top-는 예측값 pred가 큰 상위 개의 인덱스다(참값 기준이 아니다). 반환값은 이 평균 낙관 편향(스칼라)이다.
| 인자 | 의미 |
|---|---|
pred |
(N,) 후보들의 예측 물성 |
true |
(N,) 후보들의 참 물성 |
k |
상위 몇 개를 고를지 |
테스트는 다음을 확인한다.
- 예측이 참과 같으면(완벽한 모델) 편향이 0이다.
- 예측에 상위에서 더 큰 양의 오차가 있으면(모델이 높은 값에서 과신) 편향이 양수다.
- 예측을 기준으로 뽑으므로, 같은 오차라도 무작위로 뽑을 때보다 편향이 크다(optimizer's curse).
힌트: np.argsort(pred)[::-1][:k]로 예측 상위 개의 인덱스를 얻는다.