[ML상품화 | 모델] 2. 학습 데이터 준비(3)_Class Imbalance

정원석·2025년 3월 26일

Class Imbalance

Class Imbalance란 무엇인가?

  • 기계 학습과 분류 문제에서 발생하는 현상 중 하나, 클래스 간의 데이터 불균형을 나타내는 개념
  • 하나의 클래스가 다른 클래스에 비해 데이터 포인트 수가 현저히 적을 때 발
  • 예 희귀 질병을 감지하는 분류 모델에서 질병이 있는 경우 양성 클래스 데이터가 드물게 발생하는 경우

Class Imbalance가 발생하는 이유?

  • 현실 세계의 데이터는 종종 불균형한 데이터 분포를 갖음 대부분의 거래가 정상적인 신용 카드 거래이고, 사기 거래는 드물게 발생
  • 데이터 수집 과정에서 클래스 불균형이 발생 특정 클래스에 대한 Sampling 오류, Data 수집 방법, Labeling 오류

Class Imbalance 중요성

  • 실제 ML 응용 분야에서 많이 발생하며, 이를 무시하면 심각한 문제를 초래할 수 있음
  1. 모델 편향 : 모델이 소수 클래스를 올바르게 식별하지 못할 수 있음
  2. 비용 고려 : 소수 클래스의 중요도가 높은 경우, 이를 반영하지 않으면 예측의 비용이나 성능이 실제 상황과 맞지 않을 수 있음
  3. 평가 지표의 왜곡 : 정확도와 같은 평가 지표가 왜곡될 수 있으며, 실제 모델의 성능을 평가하기 어렵게 만듬

Class Imbalance 해결 필요성

  • Class Imbalance 문제를 해결하려면 적절한 기술과 전략을 적용 필요
  • 적용을 통해서 모델 성능을 향상시키고, 실제 비즈니스 문제에 더 정확한 예측을 제공할 수 있음

Class Imbalance 영향성

Class Imbalance가 모델에 미치는 영향

  • 모델 편향 : 소수 클래스를 정확하게 예측하지 못할 가능성이 높음
  • 오분류와 비용 : 소수 클래스를 무시하는 경향으로 실제에 큰 문제를 일으킬 수 있음 의료 분야에서 희귀한 질병을 감지하는 모델의 경우, 해당 질병을 놓치는 것은 치명적일 수 있으므로 오분류에 따른 비용이 높을 것임

모델 성능 지표에 미치는 영향

  • 평가 지표의 왜곡 : Accuracy는 일반적으로 Class Imbalance에 대한 적절한 지표가 아님 모든 클래스를 다수 클래스로 예측하는 모든 예측이 부정 이라는 간단한 전략으로 높은 정확도를 얻을 수 있음
  • Accuracy 외에 precision, recall, f1 score 등의 성능 지표를 고려해야 함
  • ROC Curve and AUC
    • ROC Curve : 거짓 양성 비율FPR에 대한 진짜 양성 비율TPR의 변화를 시각화
    • AUC : ROC 곡선 아래 영역으로, 모델의 성능을 요약하는 지표
  • 성능 지표를 신중하게 선택해야 함. 문제의 특성과 비즈니스 요구 사항에 따라 최적의 모델 평가 지표를 설정해야함

Class Imbalance 다루기

Class Imbalance 조절의 목표

  • 소수 클래스에 대한 모델 성능을 향상시키는 것
  • 오분류 비용을 줄이고 모델의 실용성을 향상시킬 수 있음

Class Imbalance 조절 방법의 대분류

  • 데이터 기반 접근법 : Resampling 으로 데이터 수를 조절하여 클래스 간 균형을 맞춤
  • ML Algorithm 접근법 : model parameter를 조절하여 class imbalance를 고려하도록 모델을 Tuning

Resampling

OverSampling

SMOTE (Synthetic Minority Over-sampling)

  • 소수 클래스 데이터 포인트들을 기존 데이터를 활용하여 데이터를 균형화하는 방법
  • 새로운 데이터 포인트는 소수 클래스 데이터 포인트와 그 주변의 이웃 데이터 포인트 랜덤한 데이터를 선택 사이를 보간하여 생성
  • 장점 : 다양한 데이터 생성이 가능하며 모델의 일반화 능력을 향상시킬 수 있음
  • 단점 : 데이터 중복이 발생할 수 있음

ADASYN Adaptive Synthetic Sampling

  • 소수 클래스 데이터 포인트들을 기존 데이터를 활용하여 데이터를 균형화하는 방법
  • 소수 클래스 데이터 포인트의 가중치를 계산하고, 높은 가중치를 가지는 데이터 포인트에 대해 더 많은 합성을 수행
  • 가중치는 데이터 분포와 클래스 간 거리에 따라 동적으로 조정. 거리가 가까운 데이터 포인트에 대한 합성이 더욱 강조됨
  • 장점 : 데이터 분포 거리 에 더욱 더 적응적으며, 클래스 간 거리에 따라 합성을 조절하여 불균형을 더 효과적으로 다룰 수 있음
  • 단점 : SMOTE에 비해 더 복잡하며 계산 비용을 높을 수 있음

UnderSampling

출처 : https://imbalanced learn.org/
  • 클래스 간 거리가 가까운 데이터 포인트 쌍 중에서 다수 클래스의 데이터를 제거하는 방법
  1. 다수 클래스와 소수 클래스 사이의 모든 데이터 간의 거리를 계산
  2. Tomek Links 식별 : 서로 다른 클래스에 속한 데이터 포인트 쌍 중에서 클래스 간 거리가 가장 가까운 데이터 포인트 쌍을 의미
  3. Tomek Links 제거 : 식별된 Tomek Links를 데이터에서 제거

ENN Edited Nearest Neighbors

출처 : A hybrid sampling algorithm combining synthetic minority over sampling technique and edited nearest neighbor for missed abortion diagnosis, Fangyuan Yang
  • 클래스 간 거리가 가까운 데이터 포인트 쌍 중에서 다수 클래스의 데이터를 제거하는 방법
  1. 다수 클래스 데이터 포인트에 대해, 해당 데이터 포인트와 가장 가까운 k개의 이웃을 찾음
  2. 다수 클래스 데이터 포인트 중에서 소수 클래스로 잘못 분류된 데이터 포인트를 식별
  3. 이런 오분류된 데이터 포인트를 제거하여 다수 클래스 데이터를 정제
  4. 모델이 잘못 분류하는 오분류 데이터를 제거하고 모델의 성능을 향상

TomekLinks와 ENN 공통점

  • 클래스 간 거리를 고려하여 데이터 포인트를 수정하며, Class Imbalance 문제를 해결해서 모델 성능을 향상시키는 공동 목표 가짐

TomekLinks와 ENN 차이점

  • Tomek Links는 클래스 간 거리가 가까운 데이터 포인트 중에서 서로 다른 클래스 에 속한 데이터 쌍을 식별하여 제거
  • ENN은 각 다수 클래스 데이터 포인트에 대해 가장 가까운 이웃을 기반으로 오분류된 데이터 소수 데이터로 판별되는 것 를 찾아내서 제거
  • Tomek Links는 클래스 간 경계를 명확하게 만드는 것이 목적
  • ENN은 다수 클래스 데이터를 정제하고 오분류를 줄이는 데 목적

Combined Sampling

SMOTEENN

  • SMOTE와 ENN 두 기술을 함께 사용하여 클래스 불균형을 해결
  1. SMOTE를 사용한 오버샘플링
  2. ENN을 사용한 언더샘플링
  3. 균형된 데이터셋 구성
  • 장점 : 두 기술을 조합함으로써 클래스 불균형을 효과적으로 해결 가능
  • 단점 : 모델 성능은 데이터셋의 특성와 문제에 따라 정보 손실이 발생할 수 있으며, 실험과 비교 분석이 필요

ML알고리즘 기반 방법론

  • 모델 tuning 및 parameter 조정은 머신러닝 모델의 성능을 최적화하고 Class Imbalance 데이터에 대응하기 위한 중요한 전략 중 하나
  • 모델 알고리즘 선택, 클래스 가중치 조정, 임계값 조정, 적절한 Metric 사용, Hyper parameter Tuninig, Validation, Ensenble
  1. Model Algorithm 선택
  • Class Imbalance에 Sensitive한 모델 알고리즘을 선택
  • Binary Classification 에서는 SVM, Random Forest, Gradient Boosting과 같은 모델이 좋은 성능을 보임
  1. Class Weight 조정
  • 모델의 Loss Function에 class weight를 부여하여 imbalance class에 높은 가중치weight을 할당
  • 모델은 imbalance dataset을 더 중요하게 취급하여 학습 진행
  1. Threshold 조정
  • 모델의 예측 Threshold를 조정하여 Precision과 Recall을 조절 할 수 있음 적절한 Metric 사용
  • Accruacy가 일반적으로 Imbalance Class에서 부적절하므로, 다른 Metric을 기반으로 모델을 최적화
  1. 적절한 Metric 사용
  • Accruacy가 일반적으로 Imbalance Class에서 부적절하므로, 다른 Metric을 기반으로 모델을 최적화
  1. Hyper Parameter Tuning
  • 모델의 Hyper Parameter를 조정하여 최적의 모델을 찾음
  1. Validation
  • Cross Validation을 통해 모델의 일반화 능력을 평가하고, Class Imbalance에 대해서도 성능 신뢰성을 확인 필요
  1. Ensemble 활용
  • 다양한 모델을 경합하는 앙상블 기법을 사용하여 Class Imbalance 문제를 다룸

Class Imbalance 성능 평가 및 선택

모델 성능을 어떻게 평가할 것인가?

성능 평가의 중요성

  • 모델의 성능을 평가하는 것은 머신러닝 프로젝트에서 매우 중요한 부분
  • 모델이 얼마나 잘 작동하고 예측을 얼마나 신뢰할 수 있는지를 판단

평가 Metric 선택

  • 모델의 목적과 특성에 따라 다양한 성능 Metric을 선택할 수 있으며, 일반적으로 사용되는 Metric으로는 Accuracy, Precision, Recall, F1Score등이 있다.

예시

  • 의료 진단 모델 : 의료 분야에서는 Precision이 매우 중요하며, Recall도 중요한 경우가 많음. 특히 의료 진단 모델은 Class Imbalance가 심하므로 주의해야함
  • 스팸 메일 필터링 : Precision와 Recall을 균형있게 유지하는 것이 중요하므로, F1 Score를 평가에 사용할 수 있음
  • Class Imbalance 모델 비교 : ROC Curve 혹은 AUC를 활용하여 모델 전반적인 성능을 비교

Class Imbalance와 MLOps

MLOps에 Class Imbalance 통합

통합이 필요한 이유

  • Class Imbalance는 모델의 정확도 및 신뢰성에 영향을 미침
  • 실제 운영 환경에서 모델의 성능을 보장하는 것이 중요하기 때문에, 이에 영향을 미치는 Class Imbalance 관리 필요

통합 방법

  • 데이터 수집 및 전처리 단계 : Class Imbalance를 고려하여 데이터 수집 및 전처리 과정에서 적절한 Resampling 기법을 적용
  • 모델 훈련 단계 : 모델 훈련 과정에서 가중치 조정 및 성능 지표 설정을 통해 Class Imbalance를 고려
  • 평가 및 모니터링 : 모델의 실시간 평가 및 모니터링에서 모델이 불균형한 Input에도 정상적으로 동작하는지 확인 필요

Model Update에서의 Class Imbalance 관리

  • 모델의 시간적 변화 : 실제 환경에서 데이터 및 클래스 분포가 시간이 지남에 따라 변함. 이로 인해 새롭게 발생하는 Class Imbalance 문제가 발생할 수 있으므로, 모델을 update하고 재학습해야함.
  • 모델 Update와 Re-training 전략 : 정기적인 모델 update 및 실시간 데이터 스트림에서 모델을 re training fine tuining 하는 방법을 고려해야 함
  • Data Drift 및 Class Imbalance : 데이터 분포의 변경Data Drift는 Class Imbalance와 관련성이 있을 수 있으므로 고려 필요
  • 모델 버전 관리 : 모델 성능 개선과 비교를 위해 필요
  • 모델 성능 모니터링 : Class Imbalance가 성능에 어떻게 영향을 미치지는 추적 모니터링
  • 자동화된 Update 및 Re-Training : MLOps에 자동화된 프로세스를 도입하여, Class Imbalance 관련 문제가 감지되면 모델의 자동 update 및 re training을 수행하는 방법을 개발 적용
profile
이기적이타주의자

0개의 댓글