[ML] 불균형 데이터의 다루기 - 상 : 언더샘플링과 오버샘플링, 과적합의 딜레마

Hyunjun Kim·2026년 3월 27일

Machine Learning

목록 보기
8/11

1. 들어가며: 왜 클래스 불균형(Class Imbalance)이 문제인가?

머신러닝 모델을 학습시킬 때, 우리가 예측하고자 하는 관심 대상(Target Class 또는 Source Class)의 데이터가 다른 클래스에 비해 턱없이 부족한 상황을 자주 마주하게 됩니다.

  • 신용카드 사기 탐지: 정상 거래(다수 클래스) 99.9% vs 사기 거래(소수 클래스) 0.1%
  • 제조업 불량 예측: 정상 제품(다수 클래스) 99% vs 불량 제품(소수 클래스) 1%

이러한 데이터로 모델을 학습시키면, 모델은 "모든 거래는 정상이다"라고 예측해버리는 정확도의 역설(Accuracy Paradox)에 빠집니다. 정확도는 99.9%가 나오겠지만, 우리가 진짜 찾고자 하는 0.1%의 사기 거래는 단 하나도 잡아내지 못하는 '쓸모없는' 모델이 되는 것입니다. 이를 해결하기 위해 데이터의 비율을 맞추는 데이터 리샘플링(Data Resampling) 기법이 필요합니다.

2. 언더샘플링 (Undersampling): 다수 클래스를 덜어내기

언더샘플링은 데이터 비율을 맞추기 위해 다수 클래스(Majority Class)의 데이터를 소수 클래스(Minority Class)의 수만큼 무작위로 제거하는 기법입니다.

  • 언제 사용하는가? 전체 데이터셋의 크기가 충분히 커서, 다수 클래스의 일부를 버려도 데이터의 전체적인 분포를 파악하는 데 무리가 없을 때 사용합니다.
  • 대표 알고리즘:
    • Random Undersampling: 무작위로 다수 클래스 데이터를 삭제합니다.
    • Tomek Links: 서로 다른 클래스가 너무 가까이 붙어있는 쌍(Tomek Link)을 찾은 뒤, 경계선을 명확히 하기 위해 다수 클래스 쪽 데이터를 삭제합니다.
  • 치명적 단점 (정보 손실):
    다수 클래스의 유용한 정보가 대량으로 유실될 수 있습니다. 중요한 패턴이 포함된 데이터가 삭제되면, 모델이 다수 클래스의 특징을 제대로 학습하지 못해 전체적인 예측 성능이 하락할 수 있습니다.

3. 오버샘플링 (Oversampling): 소수 클래스를 증식하기

오버샘플링은 반대로 소수 클래스의 데이터를 복제하거나 새로운 가짜 데이터를 생성하여 다수 클래스의 수와 맞추는 기법입니다. 정보의 손실이 없다는 점에서 언더샘플링보다 실무에서 더 자주 활용됩니다.

  • 언제 사용하는가? 전체 데이터 수가 충분하지 않거나, 다수 클래스의 정보를 하나도 잃고 싶지 않을 때 사용합니다.
  • 대표 알고리즘:
    • Random Oversampling: 소수 클래스 데이터를 무작위로 복제합니다.
    • SMOTE (Synthetic Minority Over-sampling Technique): 2002년 Chawla et al.이 제안한 혁신적인 기법으로, 오버샘플링의 표준으로 자리 잡았습니다. 단순히 데이터를 복제하는 것이 아니라, 소수 클래스 데이터들 사이의 특징 공간(Feature Space) 상에 새로운 가상 데이터를 보간(Interpolation)하여 생성합니다. K-최근접 이웃(kk-NN) 알고리즘을 기반으로 작동합니다.
    • ADASYN (Adaptive Synthetic Sampling): SMOTE를 발전시켜, 모델이 분류하기 어려운 데이터 주변에 더 많은 가상 데이터를 생성하도록 가중치를 줍니다.

4. 💡 핵심: 샘플링 기법과 과적합(Overfitting)의 관계

면접이나 논문에서 가장 심도 있게 다루는 부분은 바로 "샘플링 기법이 모델의 일반화(Generalization)에 어떤 영향을 미치는가?" 입니다.

  1. 단순 복제(Random Oversampling)와 과적합:
    소수 데이터를 똑같이 복사하여 늘리면, 모델은 그 특정 데이터 포인트들의 노이즈(Noise)나 특이값(Outlier)까지 그대로 외워버리게 됩니다. 훈련 데이터에 대해서는 100%의 성능을 내지만, 처음 보는 테스트 데이터에는 전혀 대응하지 못하는 심각한 과적합(Overfitting)이 발생합니다.
  2. SMOTE의 한계와 결정 경계(Decision Boundary):
    SMOTE는 가상의 데이터를 생성하여 단순 복제의 과적합 문제를 완화했습니다. 하지만 다수 클래스와 소수 클래스가 겹쳐 있는(Overlapping) 영역에서 억지로 가상 데이터를 생성하면, 클래스 간의 결정 경계가 지나치게 소수 클래스 쪽으로 치우치거나 복잡해져 또 다른 형태의 과적합을 유발할 수 있습니다.
  3. 언더샘플링과 과소적합(Underfitting):
    반대로 언더샘플링을 너무 과하게 하면, 다수 클래스의 분포를 설명할 충분한 데이터가 부족해져 모델이 너무 단순한 결정 경계를 그리는 과소적합이 발생할 수 있습니다.

5. 실무에서의 대처 방안 및 Best Practice

그렇다면 이 딜레마를 어떻게 해결해야 할까요?

  • 하이브리드 기법 사용 (SMOTE + ENN 등):
    SMOTE를 이용해 소수 데이터를 먼저 증식시킨 후, ENN(Edited Nearest Neighbours)이나 Tomek Links와 같은 언더샘플링 기법을 적용해 클래스 간 경계에 있는 노이즈 데이터를 정리합니다. 이를 통해 과적합을 방지하고 깔끔한 결정 경계를 얻을 수 있습니다.
  • 교차 검증(Cross Validation) 시 주의점:
    절대 전체 데이터에 샘플링을 먼저 적용한 후 교차 검증을 분할하면 안 됩니다. 이렇게 하면 검증(Validation) 폴드에 훈련 폴드에서 복제/생성된 데이터가 섞여 들어가 성능이 과대평가되는 데이터 누수(Data Leakage)가 발생합니다. 반드시 훈련 폴드(Train fold) 내에서만 샘플링을 수행해야 합니다.
  • 평가 지표의 변경:
    불균형 데이터에서는 정확도(Accuracy) 대신, F1-Score, Precision-Recall AUC 등 소수 클래스를 얼마나 잘 맞췄는지 직관적으로 보여주는 지표를 사용해야 합니다.

Reference

  • Chawla, N. V., Bowyer, K. W., Hall, L. O., & Kegelmeyer, W. P. (2002). SMOTE: synthetic minority over-sampling technique. Journal of artificial intelligence research, 16, 321-357.
  • He, H., & Garcia, E. A. (2009). Learning from imbalanced data. IEEE Transactions on knowledge and data engineering, 21(9), 1263-1284.
profile
Data Analytics Engineer 가 되

0개의 댓글