
48번 K-fold 는 무작위 분할이라 클래스 불균형 데이터에서 한 fold 에 특정 클래스가 거의 없을 수 있습니다 (예: 양성 5%인데 5-fold 하면 어떤 fold 는 양성이 0 일 수도). 층화(stratified) K-fold 는 각 fold 의 클래스 비율을 원본과 같게 유지:
k 조각으로 나눔.i = 모든 클래스의 i번째 조각을 합친 집합.결과: 각 fold 내 클래스 분포 ≈ 원본 분포.
함수 stratified_k_fold_indices(y, k, seed) 를 완성하세요.
y: 정수 레이블 배열 (N,).k 리스트, 각 원소는 (train_idx, val_idx) 튜플.np.array_split 로 k 조각.| # | 이름 | 검증 |
|---|---|---|
| 1 | fold 개수 = k | |
| 2 | 합집합 = 전체 | 모든 인덱스가 어느 fold 의 val 에 정확히 한 번 |
| 3 | train/val 교집합 없음 | 각 fold 내 |
| 4 | 클래스 비율 유지 | 각 val 의 클래스 분포 ≈ 원본 |
| 5 | 시드 재현성 | 같은 seed → 같은 결과 |
코드를 작성하고 Run 을 눌러보세요.