1. 서론
- 데이터 불균형(Class Imbalance)은 머신러닝 분류 문제에서 특정 클래스에 속한 데이터 수가 다른 클래스에 비해 현저히 적은 상황을 의미함
- 특히 의료, 금융 사기 탐지, 고장 진단 등 실제 문제에서 흔히 발생하는 현상임
- 모델이 다수 클래스 중심으로 학습되어 소수 클래스에 대한 분류 성능 저하 발생함
- 정확도(Accuracy) 지표가 전체 성능을 과대평가할 수 있어, 정밀도(Precision), 재현율(Recall), F1-score 등 대체 지표 필요함
2. 데이터 불균형 문제로 인한 영향
- 학습 데이터의 불균형으로 인해 모델이 다수 클래스에 대한 예측 확률을 높게 설정하게 됨
- 소수 클래스에 대한 오분류율 증가
- 모델의 일반화 성능 저하
- 현업 적용 시 중요 클래스(예: 질병 있음, 사기 발생 등) 탐지 실패 가능성 존재
3. 데이터 불균형 대응 기법 분류
3.1 데이터 수준(Data-level) 접근
- 샘플링 기법(Sampling Method) 중심
- 데이터를 재구성하거나 비율을 맞춰 학습 데이터를 보완하는 방식임
(1) 과샘플링(Over-sampling)
- 소수 클래스 데이터를 복제하거나 인위적으로 추가 생성
- 대표 기법: SMOTE(Synthetic Minority Over-sampling Technique)
- 기존 소수 클래스 샘플들 간의 거리 기반으로 새로운 데이터를 생성함
- 무작정 복사하지 않고, 원본과 근접한 특성을 가진 데이터 생성 가능
- 과적합(overfitting) 위험 줄이는 효과 있음
(2) ADASYN(Adaptive Synthetic Sampling)
- SMOTE의 확장 기법
- 어려운(분류 경계에 가까운) 소수 클래스 샘플에 대해 더 많은 synthetic sample 생성
- 분류기 입장에서 분별하기 어려운 부분에 학습 집중 가능
(3) 언더샘플링(Under-sampling)
- 다수 클래스 데이터를 제거하여 클래스 간 균형 맞춤
- 학습시간 단축 및 클래스 균형 확보 장점
- 하지만 정보 손실 및 모델 성능 저하 위험 존재
(4) 혼합샘플링(Hybrid Sampling)
- 과샘플링과 언더샘플링을 함께 사용하는 방식
- 데이터 불균형 극복과 동시에 과적합 및 정보 손실 최소화 가능
3.2 알고리즘 수준(Algorithm-level) 접근
- 학습 알고리즘 자체에 가중치(weight)나 비용(cost)를 반영하는 방식
- 데이터는 그대로 두되, 학습 중 특정 클래스에 더 많은 중요도를 부여함
(1) 클래스 가중치 조정(Class Weighting)
- 손실 함수에 클래스별 가중치를 반영하여 소수 클래스에 대한 penalty 강화
- 예: Scikit-learn, PyTorch, XGBoost 등에서
class_weight='balanced'
설정 가능
(2) Cost-sensitive Learning
- 학습 시 오분류 비용(cost)을 클래스별로 다르게 설정
- 소수 클래스를 잘못 분류할 때 더 큰 비용을 부과함으로써, 해당 클래스에 대한 분류 성능 향상 유도
(3) Focal Loss
- Cross Entropy 기반 손실 함수의 확장 형태
- 예측이 쉬운 샘플에는 적은 가중치, 어려운 샘플에는 높은 가중치를 부여
- RetinaNet에서 불균형한 객체 탐지 문제 해결 목적으로 제안됨
3.3 모델 앙상블 및 재학습 기반 접근
(1) Bagging 기반 앙상블
- 다수 클래스 중심으로 분류된 예측을 보완하기 위해 여러 모델의 결과를 통합함
- 언더샘플링 기반 배깅(UnderBagging), 과샘플링 기반 배깅(OverBagging) 기법 활용 가능
(2) Boosting 기반 기법 (예: SMOTEBoost, RUSBoost)
- 샘플링 기법과 boosting을 결합한 형태
- 각 반복에서 불균형 데이터를 보완하며, 학습 오류 감소
(3) Cascade 모델링
- 1차 모델에서 예측 실패한 샘플을 대상으로 후속 모델에서 재학습
- 소수 클래스 중심으로 재학습하여 탐지 정확도 향상 가능
4. 평가 지표 개선 기법
- 단순 Accuracy 사용은 불균형 상황에 부적절
- 주요 평가 지표는 다음과 같음
지표 | 설명 |
---|---|
Precision | 예측이 양성일 때 실제로 양성일 확률 |
Recall | 실제 양성 중에 양성으로 예측된 비율 |
F1-score | Precision과 Recall의 조화 평균 |
AUC-ROC | 모델의 분류 Threshold 변화에 따른 민감도와 특이도 시각화 지표 |
5. 실제 사례 및 적용 영역
- 의료 진단: 희귀 질병 검출 등 소수 클래스 중요성이 극대화됨
- 금융 사기 탐지: 사기 발생 데이터가 매우 희소함에도 높은 탐지율 요구됨
- 이상 탐지(Anomaly Detection): 정상 데이터가 대부분인 시스템에서 이상 탐지 수행 시 핵심 이슈가 됨
6. 결론
- 데이터 불균형 문제는 단순히 데이터 전처리의 문제가 아닌, 전체 모델링의 성능을 좌우하는 핵심 이슈로 인식해야 함
- 데이터 수준, 알고리즘 수준, 앙상블 기반 기법을 상황에 맞게 선택하고 적용하는 전략 필요
- 적절한 평가 지표 사용을 통해 실제 성능을 왜곡 없이 판단하고 개선 방향 도출해야 함
- SMOTE, 클래스 가중치, Focal Loss 등은 대표적이면서도 다양한 환경에서 활용 가능한 실용적 기법으로 분류됨
'IT Study > 인공지능 관련' 카테고리의 다른 글
🤖 텐서 연산과 브로드캐스팅 개념(PyTorch, TensorFlow) (0) | 2025.04.11 |
---|---|
🤖 자연어 처리에서의 토큰화(Tokenization) 전략 분석 (0) | 2025.04.10 |
🤖 주성분 분석(PCA)를 활용한 차원 축소 기법의 이해 (0) | 2025.04.08 |
🤖 서포트 벡터 머신(SVM)의 핵심 개념과 커널 함수 역할 (0) | 2025.04.08 |
🤖 딥러닝 모델 학습 과정에서의 오버피팅과 정규화 전략 (1) | 2025.04.07 |