데이터셋을 분할하는 방법
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 강의를 등록해 주세요!