본문으로 건너뛰기
실습하기

데이터셋을 분할하는 방법

AI 모델이 목적에 맞게 잘 작동하는지 평가하려면 데이터셋을 학습 데이터셋, 검증 데이터셋, 테스트 데이터셋으로 나누어야 합니다.

이번 수업에서는 효과적인 학습을 위해 데이터셋을 나누는 방법을 알아보겠습니다.


어떻게 나눌까요?

데이터셋을 분할하는 방법은 다양하지만, 일반적으로 다음과 같은 비율로 나눕니다.

  • 학습 데이터셋: 전체 데이터의 약 60-80%

  • 검증 데이터셋: 전체 데이터의 약 10-20%

  • 테스트 데이터셋: 전체 데이터의 약 10-20%

예를 들어 전체 데이터의 70%는 학습 데이터로, 15%는 검증 데이터로, 나머지 15%는 테스트 데이터로 사용하는 경우가 많습니다.


데이터 분할 예시: 학생 시험 성적 데이터

100명의 학생 성적 데이터가 있을 경우, 데이터를 다음과 같이 분할할 수 있습니다.


학습 데이터셋 (70%):

  • 70명의 학생 성적 데이터로 AI 모델을 학습시킵니다.
  • 이 데이터를 통해 AI 모델은 성적의 패턴을 학습합니다.

검증 데이터셋 (15%):

  • AI 모델 학습 중, 15명의 학생 성적 데이터를 사용해 AI 모델의 성능을 평가합니다.
  • 모델이 학습 데이터에만 특화되어있지 않은지(과적합, Overfitting), 모델이 학습 데이터를 충분히 학습하지 못했는지(과소적합, Underfitting) 확인합니다.

테스트 데이터셋 (15%):

  • 나머지 15명의 학생 성적 데이터를 사용하여 최종적으로 모델의 성능을 테스트합니다.
  • 이 데이터를 통해 모델이 새로운 데이터에 대해 얼마나 잘 예측하는지 확인합니다.

데이터셋 분할 방법

랜덤 샘플링 (Random Sampling)

데이터를 무작위로 선택하여 학습, 검증, 테스트 세트로 분할합니다.

  • 장점: 구현이 간단하고, 모든 데이터가 선택될 확률이 동일합니다.

  • 단점: 데이터셋의 중요 특성이 각 세트에 균등하게 분배되지 않을 위험이 있습니다. 예를 들어, 어떤 카테고리의 사례가 너무 많거나 적을 수 있습니다.


층화 샘플링 (Stratified Sampling)

데이터셋의 주요 특성을 고려하여 각 층(또는 그룹)에서 동일한 비율로 데이터를 선택합니다. 예를 들어, 질병 예측 모델에서 남성과 여성의 비율을 유지해 데이터의 중요 특성이 모든 세트에 균등하게 반영되도록 할 수 있습니다.

  • 장점: 데이터셋의 중요 특성을 유지하면서 데이터를 분할할 수 있습니다.

  • 단점: 구현이 복잡할 수 있으며, 데이터셋의 특성을 정확히 파악해야 합니다.

다음 내용이 궁금하다면?

코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!