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

K-fold 교차검증 분할

데이터 전처리 · easy

preview

K-fold 교차검증

단일 train-test split 만으로는 평가가 데이터 쪼개기 운 에 흔들립니다. K-fold 는 데이터를 k 조각으로 나눠 각각을 한 번씩 validation 으로 사용, 나머지 k-1 조각을 training 으로 사용합니다. 총 k번의 학습·평가로 더 안정적인 성능 추정.

알고리즘

  1. 인덱스 [0, 1, ..., N-1]셔플 (재현성 시드).
  2. k 개의 대략 같은 크기 조각으로 분할.
  3. 각 fold: val = i번째 조각, train = 나머지.

용법

for train_idx, val_idx in k_fold_indices(N, 5, seed=0):
    X_tr, y_tr = X[train_idx], y[train_idx]
    X_val, y_val = X[val_idx], y[val_idx]
    # 학습 → 평가

과제

함수 k_fold_indices(n, k, seed) 를 완성하세요.

  • 반환: k 개 튜플 (train_idx, val_idx) 를 원소로 갖는 리스트 — 각 인덱스 배열은 1D NumPy 정수 배열.
  • np.random.default_rng(seed).permutation(n) 으로 셔플.
  • np.array_split 로 균등(거의) 분할.

테스트 케이스

#이름검증
1길이 = klen(folds) == k
2val 합집합 = 전체union(val) == range(n)
3val 간 disjoint서로 겹치지 않음
4train, val 합 = 전체각 fold 에서
5시드 재현성
코드 작성
Loading...
실행 결과

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