IT Study/인공지능 관련

🤖 데이터 불균형 문제(Class Imbalance) 대응 기법 (SMOTE, 가중치 등)

cs_bot 2025. 4. 9. 17:48

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 등은 대표적이면서도 다양한 환경에서 활용 가능한 실용적 기법으로 분류됨