상세 컨텐츠

본문 제목

Data Prep (Class Imbalance)

데이터 과학

by Taeyoon.Kim.DS 2023. 12. 6. 01:28

본문

Class Imbalance

기계 학습 또는 분류 문제에서 발생하는 현상. 클래스간의 데이터 불균형을 나타냄. 희귀 질병을 감지하는 분류 모델에서 질병이 있는 경우 (양성 클래스) 데이터가 드물게 발생하는 경우. 현실 세계의 데이터는 종종 불균형한 데이터 분포를 갖는데, 대부분의 거래가 정상적인 신용카드 거래이고, 사기 거래는 드물게 발생한다. 또는 데이터 수집 과정에서 클래스 불균형이 발생한다. 특정 클래스에 대한 Sampling오류나, Data 수집 방법, Labelling 오류가 날 수 있다.

 

ML 분야에서는 
1) 모델 편향 : 모델이 소수 클래스를 올바르게 식별하지 못함.

2) 비용 고려 : 소수 클래스의 중요도가 높은 경우, 이를 반영하지 않으면 예측의 비용이나 성능이 실제 상황과 맞지 않음

3) 평가 지표의 왜곡 : 정확도 (Accuracy)와 같은 평가 지표가 왜곡될 수 있으며, 실제 모델의 성능을 평가하기 어렵게 만든다.

 

Anomaly Detection (이상 탐지):
목적: Anomaly detection의 주요 목적은 데이터에서 비정상적이거나 예외적인 패턴을 식별하는 것입니다. 
데이터 특성: 이상 탐지에서는 정상 데이터와 비교했을 때 매우 드물게 발생하는 이상치를 찾습니다. 이러한 이상치는 대부분의 데이터와 크게 다른 특성을 가지고 있습니다.
기법: 여기에는 다양한 기법이 사용됩니다, 예를 들어 통계적 방법, 머신 러닝 기반 접근법(예: 클러스터링, 네트워크 분석), 그리고 규칙 기반 시스템 등이 있습니다.


Class Imbalance (클래스 불균형):
목적: 클래스 불균형 문제는 분류 문제에서 관찰됩니다. 여기서 목적은 여러 클래스 중 한 클래스 또는 소수의 클래스가 다른 클래스에 비해 훨씬 적은 수의 관측치를 가질 때 이 불균형을 처리하는 것입니다.
데이터 특성: 이 문제에서는 한 클래스(소수 클래스)의 샘플 수가 다른 클래스(다수 클래스)에 비해 현저히 적습니다. 이로 인해 모델이 다수 클래스를 선호하는 경향이 생깁니다.
기법: 클래스 불균형 문제를 해결하기 위한 방법으로는 오버 샘플링(소수 클래스의 샘플을 늘리는 것), 언더 샘플링(다수 클래스의 샘플을 줄이는 것), 또는 복합 샘플링 기법이 사용됩니다.


두 개념의 주요 차이점은 그들의 목적과 데이터의 특성에 있습니다. Anomaly detection은 드문 이상치를 찾는 것에 집중하는 반면, class imbalance는 데이터 세트 내에서 클래스 간의 불균형을 처리하는 데 초점을 맞춥니다.

Affect of Class Imbalance

모델 편향 : 소수 클래스 정확하게 예측 못함

오분류와 비용 : 소수 클래스를 무시하는 경향으로, 실제로 찾아야 하는 X 질병에 대해서 넘어갈 수 있다는 것. Infringing listing의 경우, 넘어가면 비용이 높을 수 있음. 그러나 매우 큰 것은 아니며, irrelvant한 listing이 infringing listing에 포함되지 않도록 하는것이 더 중요함.

 

Accuracy는 모든 클래스를 다수 클래스로 설정해버려서 정확도를 높일 수 있음. 예를 들어 10개의 infringing listings과 9990개의 irrelevant listings에서 전체를 irrelevant로 주고 accuracy를 설정해버리면, 99.9%의 정확도가 나오지만 실제로 10개를 모두 놓치는 상황이 됨. 그러므로 Accuracy 이외에 Precision, Recall, F1-score등 다양항 성능 지표를 살펴봐야함.

Dealing with Class Imbalance

Class Imbalance 조절의 목표는 소수 클래스에 대한 모델 성능을 향상시키고 오분류 비용을 줄이고 모델의 실용성을 향상 시키는 것. 

데이터 기반 접근법 : Resampling으로 데이터 수를 조절해서 클래스 간 균형을 맞춤

ML Algorithm 방법

Resampling

클래스간 균형을 맞추거나 OverSampling 혹은 UnderSampling을 통해 클래스를 조절. Combined Sampling을 사용할 수도 있음. OverSampling은 소수 클래스 데이터를 확장하지만, 데이터 중복 및 과적합 문제 발생 가능. Undersampling은 정보 손실이 발생할 수 있음.

모델 튜닝의 필요성 : Class imbalance를 고려하여 모델의 Tuning하는 과정. 모델이 소수 클래스를 더 잘 식별하게 함. Weights또는 Threshold 조정을 할 수 있음. 

 

SMOTE

오버 샘플링 기법. 주변의 이웃 데이터 포인트 사이를 보간하여 생성함. 다양한 데이터 생성이 가능하고 모델의 일반화 능력을 향상시킬 수 있으나 데이터 중복이 발생할 수 있음.


ADASYN (Adaptive Synthetic Sampling)

소수 클래스 데이터 포인트들의 가중치를 계산하고, 높은 가중치를 가지는 데이터 포인트에 대해 더 많은 합성을 수행

가중치는 데이터 분포와 클래스 간 거리에 따라 동적으로 조정. 거리가 가까운 데이터 포인트에 대한 합성이 더욱 강조됨.

데이터 분포에 더 Adaptive 하다고 볼 수 있음. 클래스 간 거리에 따라 합성을 조절해서 불균형을 더 효과적으로 다룬다. SMOTE에 비해 더 복잡하며 계산 비용이 높다.

Class Imbalance Evaluation and Selection

모델의 목적과 특성에 따라 다양한 성능 Metric을 선택할 수 있다. 
Precision, Recall, F1-Score, RocAuc Score.

Class Imbalance and MLOps

모델의 정확도 및 신뢰성에 영향을 미치는데, 실제 운영 환경에서 모델의 성능을 보장해야하는 데, class imbalance가 영향을 미침. 데이터 수집 및 전처리 단계에서 적절한 resampling 기법을 적용하던지, 모델 훈련 단계에서 가중치 조정 및 성능 지표 설정을 통해서 class imbalance를 한다던가, 평가 및 모니터링에서 모델이 불균형한 input에도 정상적으로 동작하는지 확인 필요.

 

새로운 데이터가 갑자기 불균형한 데이터가 들어오는 경우 - MLOps에서 모델 update하고 재학습 필요. 정기적인 모델 update 및 실시간 데이터 스트림에서 모델을 re training 하는 방법 고려. 

관련글 더보기