Interview/ML

ML Interview - 데이터셋의 레이블 불균형 처리 방법안

김 정출 2024. 11. 10. 14:41

ML에서 레이블 불균형은 특정 클래스의 데이터가 다른 클래스에 비해 매우 적거나 많은 상황을 말합니다. 이를 해결하지 않으면 모델이 대부분의 데이터를 차지하는 클래스에 편향되어 다른 클래스의 성능이 저하될 수 있습니다. 레이블 불균형을 다루는 방법에는 다음과 같은 전략들이 있습니다:

  1. 데이터 리샘플링 (Resampling)
    • 오버샘플링 (Oversampling): 소수 클래스의 데이터를 증강해 학습 데이터의 균형을 맞춥니다. 일반적으로 SMOTE(Synthetic Minority Over-sampling Technique)를 사용해 기존 데이터를 기반으로 가상 데이터를 생성합니다.
    • 언더샘플링 (Undersampling): 다수 클래스의 데이터를 줄여 데이터의 균형을 맞춥니다. 데이터의 손실이 있을 수 있으므로 데이터 양이 충분할 때 사용하는 것이 좋습니다.
  2. 가중치 조정 (Class Weight Adjustment)
    • 모델 학습 시 소수 클래스에 높은 가중치를 부여해 학습에 반영되도록 합니다. 예를 들어, class_weight='balanced' 옵션을 사용하는 방법이 있습니다. 이는 불균형 데이터로 인해 학습이 편향되지 않도록 해줍니다.
  3. 데이터 증강 (Data Augmentation)
    • 이미지나 텍스트 데이터의 경우, 소수 클래스의 데이터를 증강하여 학습 데이터셋의 크기를 늘릴 수 있습니다. 예를 들어 이미지 회전, 뒤집기, 크기 변경 등의 방법을 사용할 수 있습니다.
  4. 앙상블 방법 (Ensemble Methods)
    • 불균형 데이터에 적합한 앙상블 기법을 사용하여 각 클래스에 대한 예측 성능을 향상시킬 수 있습니다. 특히 Bagging이나 Boosting 방법을 활용하여 모델이 소수 클래스에 대한 성능을 높이도록 할 수 있습니다. 예를 들어, AdaBoost는 소수 클래스에 더 많은 가중치를 주어 학습 성능을 개선할 수 있습니다.
  5. 전이 학습 (Transfer Learning)
    • 소수 클래스에 대한 데이터가 절대적으로 부족할 때는 유사한 문제에서 학습된 모델을 사용하여 불균형 문제를 다룰 수 있습니다.
  6. Anomaly Detection 기법 적용
    • 일부 불균형 문제는 소수 클래스가 특이치나 이상치로 간주될 수 있습니다. 이 경우, 이상치 탐지(Anomaly Detection) 기법을 사용하여 소수 클래스 샘플을 탐지하고 분류할 수 있습니다.
  7. 평가 지표 변경
    • 데이터 불균형 상황에서는 단순히 정확도(Accuracy)만 보는 것이 아닌, F1-score, AUC-ROC Curve, Precision-Recall Curve 등 불균형에 더 민감한 평가 지표를 사용하는 것이 좋습니다.

이 방법들을 상황에 맞게 조합하여 사용하면 불균형 데이터 문제를 효과적으로 완화할 수 있습니다.