Data Analysis

[번역] 당신은 Train, Validation & Test Set을 올바르게 사용하고 있습니까?

Woomii 2023. 11. 28. 00:34
728x90
반응형

안녕하세요. 오늘은 데이터 분석 및 모델링 시 매우 익숙한 개념이지만,

그 차이를 명확히 하고 저도 복습하는 의미에서 Training Set, Test Set 그리고 Validation Set의 개념과 사용 방법에 대해서 알아보고자 해요.

 

글의 내용은 다음 링크의 원문을 참고로 작성되었음을 밝힙니다!

 

출처 : https://www.blog.dailydoseofds.com/p/are-you-sure-you-are-using-the-train?utm_source=substack&publication_id=1119889&post_id=138733052&utm_medium=email&utm_content=share&utm_campaign=email-share&triggerShare=true&isFreemail=true&r=2vemqb

 

Are You Sure You Are Using the Train, Validation and Test Set Correctly?

Here's an explanation you always wanted with an intuitive analogy.

www.blog.dailydoseofds.com

 

 

주어진 데이터를 Training Set, Test & Validation Set로 나누는 것은 매우 일반적이며 우리들에게도 잘 알려져 있습니다.

 

데이터 셋 분할(Train / Valid / Test Set)

 

 

 

 

그러나 많은 사람들이 이러한 데이터셋 분할을 올바른 방식으로 사용하고 있지 못합니다. [특히 검증 및 테스트 세트에 대해서]
오늘은 몇 가지 오해를 풀고 Training, Validation 및 Test Set을 제대로 사용하는 방법에 대해 알아보겠습니다.
시작하겠습니다!

 



우리 모두가 알고 있듯이, 우리는 데이터를 다음과 같이 분할하는 것으로 데이터 분석(특히 모델링)을 시작합니다:

 

  • Train(트레이닝 셋, 학습용 셋)
  • Validation(밸리데이션 셋, 검증용 셋)
  • Test(테스트 셋)

 

데이터를 나누자마자! 이 시점에서는 테스트 데이터가 존재하지 않는다고 가정합니다. 지금 바로 잊어버리세요!! (아래 그림처럼요)

 

1. Training Set : 모델 개발 전까지 뭐든지 다해보기

 

 

테스트 셋은 잊어먹읍시다(없는 셈 치자구요)

 

 

 

그러면 우리는 Training set부터 시작하게 됩니다. 이것은 우리가 아는 세상의 전부입니다.

여기서 우리는 Training set을 이용해서 이 데이터를

  • 분석하고(Analysis)
  • 시각화하고(Visualization)
  • 분석에 적합한 형태로 변환(Transformation)
  • 모델을 피팅, 적합(Train, Fitting a model)

하는 데 사용할 수 있습니다.

 

 

 

 

모델링 후에는 모델이 잘 만들어졌는지 궁금하므로

지금까지 보지 못했던 새로운 데이터(unseen data)에 대한 모델 성능을 측정하고 싶을 것입니다. 그렇죠?

 

지금이 바로 Validation set을 가져올 차례입니다.


 

2. Validation Set : 모델 성능 중간 평가 및 개선

 

 

 

 

Validation set을 바탕으로 측정한 모델의 성능을 바탕으로 우리는 모델을 계속해서 개선해 나가게 됩니다.

이처럼 모델을 반복적으로 개선(iteratively build model)하는 방법은 다음과 같습니다 : 

 

  1. Train set을 사용하여 훈련
  2. validation set를 사용하여 평가
  3. 모델 개선
  4. validation set를 사용하여 다시 평가
  5. 모델을 다시 개선
  6. 그리고 반복...

그러다 보면 모델이 validation set에 과적합(overfitting)되기 시작하게 됩니다.

이는 모델이 validation set를 악용했음을 의미합니다. 하지만, 걱정 마세요.

 

이럴 때는 Training set과 Validation set을 다시 병합하고, 새로운 Training / Validation set으로 분할해 새로운 데이터셋을 생성해 주면 됩니다.

 

이러한 과정을 우리는 교차 검증(Cross validation)이라고 부릅니다.

 

 

 

 

참고: 특히 데이터가 많지 않을 때는 필요한 경우 교차 검증을 사용합니다. 데이터가 충분할 경우에도 교차 검증을 사용할 수 있습니다. 하지만 계산 집약적(연산에 많은 자원과 시간이 소요) 일 수 있습니다.

 

교차 검증에 대해 자세한 내용은 다음 링크를 참고해 주세요! (저도 다음 글에서 아래 내용을 좀 더 정리해서 다루어 보겠습니다)

A Visual Guide to Popular Cross Validation Techniques (dailydoseofds.com)

 

A Visual Guide to Popular Cross Validation Techniques

Cross validation techniques summarised in a single frame.

www.blog.dailydoseofds.com

 


3. Test Set : 최종 평가

 

마지막으로, 이제 모델의 성능에 대해 만족하신다면 Test Set에서 모델을 최종 평가해 보세요.

✅ 테스트 세트의 올바른 용도 : 모델에 대한 최종적이고 편향되지 않은 검토(unbiased review)
❌ 테스트 세트를 사용하지 말아야 하는 경우 : 분석, 의사결정 등.

반응형