데이터 사이언스/프로젝트

[데이터 불균형 실험노트] 불균형 데이터란? Accuracy의 함정을 격파하기

GwiYeonKim 2025. 9. 3. 15:27

모두의연구소 데이터 사이언스 4기 과정에서 진행한 아이펠톤 프로젝트는 기업 데이터를 기반으로 진행되고 있다.
우리가 다룬 제조 기업 데이터의 가장 큰 특징은 정답(라벨)이 존재하지 않는다는 점이었다.

그래서 우선적으로 임시 라벨을 부여하는 Pseudo-labeling을 통해 Target을 생성하고, 데이터 모델링을 시작했다.


🎯 데이터 불균형 현상

머신러닝 모델링에서 가장 먼저 확인해야 하는 것은 클래스 분포이다.
Target 라벨을 어떻게 정의하느냐에 따라 조금씩 달라졌지만, 공통적으로 데이터 불균형이 매우 심했다.

  • 이진 분류 → 정상 99.86% / 결함 0.14%
  • 다중 분류(1) → 정상 99.83% / 위험 0.10% / 조정 0.07%
  • 다중 분류(2) → 정상 79.4% / 위험 13% / 조정 7.6%

🤔 왜 문제일까?

불균형 데이터에서 Accuracy(정확도)는 믿을 만한 지표가 되지 못한다.
예를 들어, 데이터의 99%가 “정상”이고 1%가 “이상”이라면,
모델이 무조건 “정상”만 예측해도 정확도는 99% 가 나옵니다.

하지만 이 모델은 정작 우리가 제일 잡고 싶었던 이상 케이스(소수 클래스) 를 하나도 못 잡는다.
👉 결국 Accuracy는 높은데, 실질적인 성능은 제로 인 모델이 만들어지게 된다.


📊 Accuracy의 함정

실제 데이터 모델 예측 Accuracy
정상 99% / 이상 1% 전부 정상으로 예측 99%
정상 99% / 이상 1% 일부 이상 검출 95%
  • 첫 번째 모델은 Accuracy 99%지만, Recall(재현율)은 0% → 소수 클래스 놓침
  • 두 번째 모델은 Accuracy가 95%로 떨어졌지만, 소수 클래스 일부라도 잡음 → 실제로는 더 유용한 모델

따라서 불균형 데이터에서는 F1-score, Recall, Precision, PR-AUC 같은 지표가 더 중요하다.


🚀 앞으로 다룰 내용

불균형 데이터를 다루는 여러 가지 방법을 실험하고 시리즈로 정리해보려 한다.

  • SMOTE: 합성 데이터로 소수 클래스 늘리기
  • SMOTENC: 범주형 변수까지 다루는 오버샘플링
  • Class Weight: 모델 가중치로 불균형 보정
  • 그리고 마지막에, 어떤 방법이 더 효과적인지 정리

✅ 마무리

불균형 데이터는 앞으로 마주할 대부분의 실제 데이터가 가진 공통된 특성이다.
이번 글에서는 Accuracy만으로는 성능을 평가할 수 없는 이유를 확인했다.
다음 글부터는 구체적인 기법들을 하나씩 살펴보고, 어떤 차이가 있는지 실험 결과와 함께 정리해보겠다.