← 문제 목록/학습/테스트 분할

학습/테스트 분할

데이터 전처리 · easy

preview

학습/테스트 분할 (Train-Test Split)

모델 평가의 첫 단계. 데이터를 훈련용평가용 으로 나누지 않으면 "외운 것" 과 "일반화한 것"을 구분할 수 없죠.

왜 단순 자르기는 안 좋은가

데이터가 시간·레이블 순서로 정렬돼 있으면, 앞에서 자르면 훈련/테스트 분포가 달라집니다. 그래서 항상 셔플 후 분할 합니다.

재현성

실험을 반복할 때 같은 결과가 나오도록 랜덤 시드(seed) 를 받아 np.random.default_rng(seed) 로 섞습니다.

과제

함수 train_test_split(X, y, test_ratio, seed) 를 완성하세요.

  • X shape (N, D), y shape (N,), test_ratio 예: 0.2.
  • 반환 순서: (X_train, X_test, y_train, y_test).
  • rng = np.random.default_rng(seed), rng.permutation(N) 로 인덱스 섞기.
  • 테스트 개수 = int(N * test_ratio), 나머지는 훈련.

테스트 케이스

#이름검증
1크기 정확10/test_ratio=0.3 → test 3, train 7
2shape 유지D, 레이블 차원 보존
3시드 재현성동일 seed → 동일 분할
4서로 다른 시드분할이 달라짐
5모든 샘플 보존train + test 합집합이 원본
Loading...

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