모델이 평가에서 매우 높은 점수를 받고도 쓸모없을 수 있는 이유는 무엇입니까?
모델은 학습에 사용한 데이터로 테스트하면 점수가 매우 높아도 쓸모가 없을 수 있습니다. 새로운 고객에게도 적용할 수 있는 패턴을 학습한 것이 아니라 해당 사례를 외웠을 수 있기 때문입니다.
직원 120명의 가상 밀키트 구독 업체 팬트리박스를 생각해 봅니다. 분석가 코피는 고객 유지 팀이 먼저 전화할 수 있도록 다음 달에 구독을 해지할 고객을 예측하는 모델을 만듭니다. 고객 담당 책임자 시안에게 보낸 보고에는 이렇게 적혀 있습니다. '모델 A: 정확도 99%!! 고객 ID, 우편번호, 과거 모든 주문 날짜 등 85개 열 사용. 모델 B(단순한 모델, 2개 열): 학습 데이터에서 69%, 테스트 데이터에서 68%. 지난달 신규 데이터에 적용한 모델 A: 71%. 매달 약 30%의 고객이 해지합니다.' 시안은 어떤 모델을 사용해야 하는지, 그리고 정확도가 99%였던 모델이 지난달에는 왜 그렇게 성능이 나빴는지 알고 싶어 합니다.
| 모델 | 훈련 정확도 | 테스트 정확도 | 제안하는 내용 |
|---|---|---|---|
| 모델 A, 85개 열 | 99% | 71% | 과적합: 학습 데이터의 고객을 외운 경우 |
| 모델 B, 2개 열 | 69% | 68% | 과소적합: 항상 '유지'라고 예측하는 것보다 성능이 거의 나아지지 않음 |
과적합과 과소적합을 어떻게 단계별로 진단합니까?
학습 데이터에서의 성능과 모델이 한 번도 보지 못한 데이터에서의 성능을 비교하고, 이 둘을 단순한 기준 모델의 성능과 비교하여 두 문제를 진단합니다. 이 세 수치가 보이는 양상으로 어떤 문제가 있는지 알 수 있습니다.
1. 일부 데이터 따로 남겨 두기
학습 전에 모델에 전혀 노출하지 않을 테스트 세트를 따로 확보합니다. 모델이 학습한 데이터로 테스트하는 것은 기본적인 실수입니다. 본 내용을 단순히 반복하는 모델도 만점을 받지만 예측 능력은 전혀 없을 수 있기 때문입니다.
2. 기준선 설정하기
아주 단순한 규칙으로 어느 정도의 점수를 얻을 수 있는지 계산합니다. 팬트리박스에서는 매달 고객의 약 70%가 계속 이용하므로, 모든 고객이 '계속 이용한다'고 예측하면 약 70%의 점수를 얻습니다. 유용한 모델이라면 이 점수를 확실히 넘어야 합니다.
3. 학습 데이터와 테스트 데이터를 비교합니다
훈련 점수는 높지만 테스트 점수가 훨씬 낮으면 과적합의 신호입니다. 두 점수가 모두 낮고 기준 성능에 가까우면 과소적합의 신호입니다. 두 점수가 모두 양호하고 비슷하면 적절하게 적합되었음을 시사합니다.
4. 안정성을 확인합니다
교차 검증은 학습 데이터를 서로 다른 부분으로 나누어 모델의 학습과 평가를 여러 차례 반복하고 결과의 평균을 구합니다. 나눈 부분에 따라 점수가 크게 달라진다면 모델이 불안정하다는 뜻입니다.
5. 문제에 맞는 해결책 선택하기
과적합과 과소적합은 해결 방법이 서로 반대이므로, 무엇이든 변경하기 전에 어떤 문제인지 먼저 파악해야 합니다.
과적합과 과소적합을 어떻게 해결합니까?
과적합은 모델을 단순화하거나 데이터의 대표성을 높여 해결하고, 과소적합은 모델에 더 유용한 정보를 제공하거나 유연성을 높여 해결합니다. 쉽게 말하면 다음과 같습니다:
과적합의 경우
고객 ID처럼 행동이 아니라 개인을 식별하는 열을 제거합니다. 실제로 점수를 산정할 고객을 대표하는 학습 데이터를 사용하고, 더 단순한 모델을 우선합니다. 또한 학습 중 복잡성에 페널티를 부여해 모델이 더 단순한 패턴을 선호하도록 하는 정규화를 적용합니다.
과소적합의 경우
배송 건너뛰기, 최근 불만, 가격 변경 등 해지와 관련이 있을 법한 특성을 추가합니다. 더 유연한 모델을 사용할 수 있도록 하고, 데이터에 잡음이나 잘못된 라벨이 너무 많아 어떤 모델도 학습할 수 없는 상태는 아닌지 확인합니다.
두 경우 모두
테스트 데이터 세트는 마지막까지 사용하지 않습니다. 테스트 데이터 세트를 기준으로 모델을 반복해서 조정하면 정보가 모델에 새어 들어가 테스트 점수가 더 이상 성능을 정직하게 추정하지 못합니다.
미흡한 고객 이탈 모델 관련 의사결정과 개선된 의사결정은 어떻게 다릅니까?
잘못된 판단은 슬라이드에서 99%가 가장 큰 수치라는 이유로 모델 A를 선택합니다. 실제로는 추측보다 나을 것이 거의 없어, 고객 유지 담당 팀은 애초에 이탈할 생각이 없던 고객에게 전화를 하느라 시간을 낭비합니다.
개선된 판단은 다음과 같습니다. '모델 A는 개별 고객을 암기했습니다. 고객 ID와 정확한 주문 날짜가 포함되어 있어, 고객이 해지하는 이유를 학습한 것이 아니라 이미 본 고객을 알아본 것입니다. 모델 B는 너무 단순해서 70% 기준선을 넘지 못합니다. 다음 단계: 모델 C는 고객 ID와 우편번호를 제외하고, 지난달 배송 건너뛰기 횟수, 고객 지원 요청, 마지막 메뉴 변경 이후 경과 주 수 등을 포함한 행동 특성 6개를 사용합니다. 목표: 고객 유지 담당팀이 모델에 의존하기 전에 5겹 교차 검증으로 확인하여, 테스트 점수가 70%를 확실히 넘고 학습 점수와의 차이가 몇 퍼센트포인트 이내가 되도록 합니다.' 이제 Sian은 99% 모델이 실패한 이유와 좋은 결과의 기준을 이해합니다.
모델이 과적합도 과소적합도 아닌지 어떻게 확인합니까?
모델을 검증하려면 테스트 점수가 학습 점수와 비슷한지, 기준 모델보다 확실히 나은지, 교차 검증의 각 분할과 새로운 한 달 치 데이터에서도 점수가 안정적인지 확인합니다. 취소 사유처럼 결과가 나온 뒤에야 알 수 있는 특성이 포함되어 있는지도 확인합니다. 이런 정보가 포함되면 데이터 누출이며, 두 점수 모두 모델의 실제 성능보다 좋아 보이게 됩니다.
과적합과 과소적합을 다룰 때 흔히 하는 실수는 무엇입니까?
가장 흔한 실수는 학습 정확도를 실제 환경에서의 정확도인 것처럼 보고하는 것입니다. 그 밖에도 기준 성능을 무시해 추측만으로도 얻을 수 있는 70%를 인상적인 성과로 여기거나, 점수가 오르기를 바라며 사용 가능한 모든 열을 추가하거나, 모델을 조정하면서 테스트 데이터를 미리 보거나, 과적합에는 대개 복잡도를 낮춰야 하는데 오히려 높여야 한다고 여기는 실수가 있습니다.
Tosheo.ai에서 이 수업은 어디에 해당합니까?
이 수업은 머신러닝 범주에 속하며 머신러닝 과정의 모델 소개 다음에 이어집니다. Tosheo.ai의 실습 과제에서는 진단할 가상의 모델 보고서를 제공하며, 평가 기준에 따른 피드백은 개선안을 권하기 전에 훈련 결과, 테스트 결과, 기준선 결과를 비교했는지 확인합니다. 이는 데이터 팀과 협업하기 위한 실무 기초 과정입니다. 코드로 모델을 훈련하고 평가하는 내용은 선택형 코드 트랙에서 다룹니다.
출처와 범위
Google 머신러닝 단기집중과정: 과적합 (19 October 2026 확인) ↗