모두의연구소 데이터 사이언스 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만으로는 성능을 평가할 수 없는 이유를 확인했다.
다음 글부터는 구체적인 기법들을 하나씩 살펴보고, 어떤 차이가 있는지 실험 결과와 함께 정리해보겠다.
'데이터 사이언스 > 프로젝트' 카테고리의 다른 글
| [데이터 불균형 실험노트] SMOTENC: 범주형 변수까지 공략하기 (0) | 2025.09.03 |
|---|---|
| [데이터 불균형 실험노트] SMOTE: 합성 데이터로 불균형을 돌파하다 (0) | 2025.09.03 |
| 반지도학습(Semi-Supervised Learning) 정리 (0) | 2025.08.14 |
| Pseudo-labeling (의사 라벨링) 완벽 정리 (0) | 2025.08.14 |
| 제조 데이터 분석에서 추세 변화 감지(Change Point Detection) 기법 활용하기 (0) | 2025.08.13 |