← 문제 목록/층화 K-fold 교차검증 분할
문제 해설

층화 K-fold 교차검증 분할

데이터 전처리 · easy

preview

층화 K-fold 교차검증

48번 K-fold 는 무작위 분할이라 클래스 불균형 데이터에서 한 fold 에 특정 클래스가 거의 없을 수 있습니다 (예: 양성 5%인데 5-fold 하면 어떤 fold 는 양성이 0 일 수도). 층화(stratified) K-fold 는 각 fold 의 클래스 비율을 원본과 같게 유지:

알고리즘

  1. 클래스별로 샘플 인덱스를 모음.
  2. 각 클래스 내부에서 셔플 → k 조각으로 나눔.
  3. fold i = 모든 클래스의 i번째 조각을 합친 집합.

결과: 각 fold 내 클래스 분포 ≈ 원본 분포.

과제

함수 stratified_k_fold_indices(y, k, seed) 를 완성하세요.

  • y: 정수 레이블 배열 (N,).
  • 반환: 길이 k 리스트, 각 원소는 (train_idx, val_idx) 튜플.
  • 같은 클래스 내에서만 셔플하고, 각 클래스를 np.array_split 로 k 조각.

테스트 케이스

#이름검증
1fold 개수 = k
2합집합 = 전체모든 인덱스가 어느 fold 의 val 에 정확히 한 번
3train/val 교집합 없음각 fold 내
4클래스 비율 유지각 val 의 클래스 분포 ≈ 원본
5시드 재현성같은 seed → 같은 결과
코드 작성
Loading...
실행 결과

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