[ML] 다양한 데이터 분할 방법

myeongwang·2024년 1월 21일
0

why?

평가 데이터나 검증 데이터가 원본 데이터를 잘 반영하지 못한다면?

  • 모델의 학습과 실험이 올바르게 진행되지 않음
  • 검증 데이터와 평가 데이터의 분포가 다르거나 서로 다른 패턴을 보유하고 있을 경우,
    학습 데이터를 올바르게 검증해도 평가 데이터에 대해서는 성능이 좋지 않은 결과
  • 따라서, 검증 데이터와 평가 데이터를 잘 설정하는 것이 중요

Holdout

가장 기본적인 분할 방법

  • 전체 데이터를 8:2 등과 같이 일정 비율로 분리하는 기법
  • 랜덤하게 분리하거나, 경우에 따라 가장 최근 20%를 검증데이터로 사용
  • 주어진 데이터의 특징에 따르거나 목적에 따라 다르기에,데이터와 도메인에 대한 이해를 바탕으로 진행

장점

빠른 속도로 모델 검증 가능하여, 가장 기본적이지만 많이 사용되는 방법론

단점

  • 일부 데이터(20%의 검증 데이터)가 학습에 참여하지 못함으로 성능이 일반적으로 낮은 편
  • 전체 데이터가 아닌 일부 데이터에 대해서만 검증했기에 완전히 신뢰성 있다고 보장할 수 없음

K-Fold

K번의 Holdout으로 데이터를 분리하는 방법

  • K-1개를 학습 세트로, 1개를 검증 세트로 사용
  • 동일한 Fold가 없도록 설정
  • 최적의 학습,검증 Fold셋을 찾아내거나 모델들의 결과를 앙상블해서 사용

장점

  • 데이터셋 내의 모든 데이터를 훈련에 활용 가능
  • 전체 데이터에 대한 검증을 하기에, 신뢰성을 보장
  • Fold별 결과물을 앙상블 하기에, 대부분의 경우 Holdout대비 높은 성능

단점

  • 모델 훈련 및 평가 소요시간 증가 (Holdout대비 K배)
  • K의 선택이 필요

Stratified K-Fold

  • K개의 Fold를 구성하는 방법은 K-Fold와 동일
  • 하지만, Fold별 Y의 비율도 동일하게 하는 분할 방법
  • 데이터의 양이 적거나 불균형이 심한 데이터에 대해 K-Fold 적용 시 분포가 크게 달라지는 현상을 방지

장점

  • K-Fold의 장점
    • 데이터셋 내의 모든 데이터를 훈련에 활용 가능.
    • 전체 데이터에 대한 검증을 하기에, 신뢰성을 보장.
    • Fold별 결과물을 앙상블 하기에, 대부분의 경우 Holdout대비 높은 성능.

- Y의 분포가 동일하기에, 불균형에서 오는 부분이 일부 해소

단점

  • K-Fold의 단점
    • 모델 훈련 및 평가 소요시간 증가 (Holdout 대비 K배)
    • K의 선택이 필요.

Group K-Fold

  • 특정 목적하에 사용되는 확장된 K-Fold 방법
  • Train과 Valid에 같은 값이 들어가지 않도록 Group을 구성 후, Fold별로 Group을 분배
  • 새로운 사람에 대해 예측하는 경우나 일반적으로 환자 데이터에 사용하기 유리
  • 새로운 환자의 질병을 예측해야하는 데이터에서 Train과 Valid에 같은 환자의 정보가 들어있으면, 모델이 해당 환자의 패턴을 미리 파악하게 되는 문제가 발생할 수 있음

장점

  • K-Fold의 장점
    • 데이터셋 내의 모든 데이터를 훈련에 활용 가능.
    • 전체 데이터에 대한 검증을 하기에, 신뢰성을 보장.
    • Fold별 결과물을 앙상블 하기에, 대부분의 경우 Holdout대비 높은 성능.
  • Group 분배 가능

단점

  • K-Fold의 단점
    • 모델 훈련 및 평가 소요시간 증가 (Holdout 대비 K배)
    • K의 선택이 필요.

Time-Series Split


시계열 데이터에 사용되는 확장된 K-Fold 방법

  • 시간에 따른 순서가 존재하기에, 기존의 K-Fold를 사용하면 미래의 데이터로 과거를 예측하는 일이 발생
  • 따라서, 과거의 데이터를 통해 미래를 예측하는 데이터의 구조를 유지한 채 Fold를 나누는 방법

장점

  • K-Fold의 장점
    • 데이터셋 내의 모든 데이터를 훈련에 활용 가능.
    • 전체 데이터에 대한 검증을 하기에, 신뢰성을 보장.
    • Fold별 결과물을 앙상블 하기에, 대부분의 경우 Holdout대비 높은 성능.
  • 다양한 기간(Fold1=1주, Fold2=2주, ...)에 대한 학습 결과를 얻을 수 있어, 일반화의 성능을 높일 수 있는 장점.

단점

  • K-Fold의 단점
    • 모델 훈련 및 평가 소요시간 증가 (Holdout 대비 K배)
    • K의 선택이 필요.
profile
Real Cryptocurrency Trader & AI Engineer LV.0

0개의 댓글