250120 TIL #594 AI Tech #126 train-test split 전략

김춘복·2025년 1월 20일
0

TIL : Today I Learned

목록 보기
596/604

Today I Learned

오늘은 train-test 분리 전략에 문제가 생겨 알아봤다.


train-test 분리 전략

비율 기반 분리 전략

각 유저당 rating을 train 8 : test 2 의 비율로 분리

  • 장점:
    전체적으로 train-test 비율이 일정하게 유지됨.
    데이터셋이 균형적으로 유지되어 모델의 일반화 성능을 평가하기에 적절함

  • 단점:
    유저별로 테스트셋의 아이템 수가 다르기 때문에, 평가 지표(특히 recall@k, precision@k)에 영향을 미칠 수 있음
    아이템 수가 적은 유저의 경우, 테스트셋 크기가 너무 작아 신뢰할만한 평가가 어려울 수 있음

고정 개수 분리 전략

각 유저당 rating을 10~20개만 test에 두고 나머지는 train으로 분리

  • 장점:
    유저당 동일한 테스트셋 크기를 유지할 수 있어, 모델 성능 비교가 일관성 있게 가능
    특히 Recall@K, Precision@K, NDCG@K 등의 순위 기반 평가 지표에서 공정한 비교가 가능
    극단적으로 적거나 많은 아이템을 가진 유저로부터 발생할 수 있는 불균형 문제를 완화할 수 있음

  • 단점:
    전체적으로 train-test 비율이 유저마다 달라질 수 있어, 특정 유저의 데이터가 과적합(오버피팅)되거나 일부 유저의 학습 기여도가 낮아질 가능성
    아이템 수가 적은 유저의 경우, 학습 데이터가 너무 작아 모델이 충분히 학습되지 않을 수 있음


비율기반에서 지표 편향 예시

  • 유저 A
    총 100개의 rating 기록
    20% 테스트셋 → 20개의 테스트 아이템

  • 유저 B
    총 10개의 rating 기록
    20% 테스트셋 → 2개의 테스트 아이템

  • Recall@10의 경우
    유저 A: 10개 중 5개 맞춤 → Recall = 5/20 = 0.25
    유저 B: 2개 중 1개 맞춤 → Recall = 1/2 = 0.50

  • NDCG@10의 경우
    유저 A: 20개의 관련 아이템 중 순위를 평가
    유저 B: 2개의 관련 아이템 중 순위를 평가
    유저 B는 적은 수의 아이템으로 인해 높은 NDCG 값을 얻기 쉬움

  • 결과적 문제점
    테스트셋 크기가 작은 유저들의 평가 지표가 과대 평가될 수 있음
    최종 평균 계산 시 유저별 신뢰도가 다름에도 동일한 가중치로 처리됨
    특히 Top-K 추천에서 K값이 테스트셋 크기보다 큰 경우 평가 자체가 왜곡될 수 있음

profile
Backend Dev / Data Engineer

0개의 댓글