← 문제 목록/Bagging OOB 예측 집계
문제 해설

Bagging OOB 예측 집계

앙상블 · easy

preview

Bagging OOB 예측 집계

57번 OOB 마스크 로 각 모델의 OOB 샘플을 알았다면, Random Forest 의 OOB 점수 는 이렇게 계산됩니다:

샘플 ii 의 OOB 예측 = ii 가 OOB 였던 모델들의 평균/다수결.

이걸 전체 데이터에 대해 모으면 별도 validation 없이 일반화 성능 추정 완료.

회귀 버전

y^iOOB=1MimMiy^m,i\hat{y}_i^{\text{OOB}} = \frac{1}{|\mathcal{M}_i|} \sum_{m \in \mathcal{M}_i} \hat{y}_{m, i}

Mi\mathcal{M}_i = "샘플 ii 를 학습에 안 쓴 모델들".

주의

  • 모든 모델이 ii 를 학습에 썼다면 OOB 예측 없음 → NaN 반환.
  • 확률이 아닌 값 평균이므로 회귀 버전.

과제

함수 oob_aggregate(preds, sample_indices_list) 를 완성하세요.

  • preds shape (M, N) — M개 모델의 N개 원본 샘플에 대한 예측.
  • sample_indices_list: 길이 M 리스트. 각 원소는 해당 모델이 학습에 사용한 bootstrap 인덱스 배열.
  • 반환: shape (N,) float — 각 샘플의 OOB 평균 예측. 해당 모델 없으면 np.nan.
  • 힌트: 각 m 마다 oob_mask(n, idx) 만들어 (M, N) 불리언 마스크로 쌓기.

테스트 케이스

#이름검증
1shape (N,)
2한 샘플이 모든 모델의 OOB → 평균
3한 샘플이 아무 모델의 OOB 아님 → NaN
4부분적 OOB → 해당 모델만 평균
5큰 M → NaN 거의 없음
코드 작성
Loading...
실행 결과

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