지난번 포스팅에서는 불균형 데이터(imbalanced data)가 무엇이고, 분류 모델링 시 무엇이 문제인지에 대해서 알아보았습니다. --> https://rfriend.tistory.com/773

이번 포스팅부터는 불균형 데이터를 가지고 분류 모델링 시 대처방법에 대해서 몇 번에 나누어서 이론과 Python을 활용한 코드를 소개하겠습니다.  먼저 (3-1) 소수 클래스의 데이터 추가 수집과 (3-2) 불균형 데이터 분류 모델에 적합한 성능평가 지표 선정 부터 시작해볼까요? 



[ 불균형 데이터로 분류 모델링하는 방법 ]
  1. 소수 클래스의 데이터 추가 수집 (Get more minority data) 
  2. 불균형 데이터 분류 모델에 적합한 성능평가 지표 선정 
       (evaluation metrics for imbalanced classification)  

  3. 샘플링 방법 (Sampling methods)
    3-1. Undersampling
      : Random Sampling, Tomek Links
    3-2. Oversampling
      : Resampling, SMOTE, Borderline SMOTE, ADASYN
  4. 비용 또는 가중치 조정 방법 (Cost, Weight)
  5. Outlier detection 방법
      : One-class SVM, Isolation Forest, DBSCAN clustering
  6. 확률 튜닝 알고리즘 (Probability Tuning Algorithms)



1. 소수 클래스의 데이터 추가 수집 (Get more minority data)

만약 소수 집단의 데이터를 추가로 수집하거나 또는 생성할 수 있다면 두 집단의 구성비가 균형을 잡히도록 소수 집단의 개수를 늘리면 되겠습니다. 

하지만, 데이터를 수집하는데는 시간과 비용 (time and cost) 이 소요된다는 점, 상황에 따라서는 소수 데이터의 추가 수집이 불가능하다는 점도 고려를 해야겠습니다. 이런 제약사항 때문에 알고리즘적으로 불균형 데이터 문제를 해결하는 방법을 알아둘 필요가 있습니다. 
(다음번 포스팅부터 소개해요)

 

 

 

2. 불균형 데이터 분류 모델에 적합한 성능평가 지표 선정 
     (evaluation metrics for imbalanced classification)

 

균형 데이터 (balanced data)에 대한 
 - 분류 모델의 성능 평가 지표에 대한 이론은 https://rfriend.tistory.com/771 를 참고하구요, 
 - Python 을 이용한 분류 모델의 성능 평가 코드는 https://rfriend.tistory.com/772 를 참고하세요. 

불균형 데이터 (imbalanced data)에 대한 분류 모델 평가 지표를 선정하는 데는 
 (a) 범주와 확률 중에서 무엇을 예측하는가? 
 (b) 두 범주가 동등하게 중요한가? 아니면 양성(Positive) 범주가 더 중요한가?
 (c) False Negative, False Positive 가 동등하게 중요한가? 아니면 둘 중 하나가 더 중요한가?
의 질문에 대한 답변 별로 평가 지표가 달라집니다. 
(아래의 ‘불균형 데이터에 대한 이진 분류 모델 평가 지표’ 참조) 

불균형 데이터에 대한 이진분류 모델 평가 지표 (performance metrics of binary classification for imbalanced data)

 

 

(1) 범주(class labels)를 예측하고, 두 범주가 동등하게 중요하며, 다수 범주가 80~90% 이상으로서 불균형 데이터(imbalanced data)인 경우 

       --> Geometirc-Mean (or G-Mean) 

G-Mean = sqrt(Sensitivity x Specificity)

 

기하평균 G-Mean 은 다수 집단 (Majority class)과 소수 집단 (Minority class) 간 모두의 분류 성능을 측정하는 지표입니다. 낮은 G-Mean 점수는 비록 음성 사례(negative cases)가 정확하게 분류가 되더라도 양성 사례(positive cases)의 분류는 저조한 성능을 보인다는 뜻입니다. G-Mean 지표는 음성 범주(negative class)의 과적합(over-fitting)을 피하고, 양성 범주(positive class)의 과소 적합(under-fitting)을 피하는데 중요하게 사용됩니다. 

 

(2) 범주를 예측하고, 두 범주가 동등하게 중요하며, 다수 범주가 80~90% 미만인 균형 데이터(balanced data)는

      --> 정확도(Accuracy) 평가지표를 사용하면 됩니다.

하지만, 불균형 데이터에 대해서 정확도 지표를 사용할 경우 다수 집단 만을 잘 분류하고 소수 집단에 대해서는 제대로 분류를 못해도 높은 정확도 점수가 나오는 문제가 있습니다. 

 

 

confusion matrix and performance metrics for the binary classification model
Geometric Mean, G-Mean

 

 

 

(3) 범주 (class labels) 를 예측하고, 양성 범주 (Positive class)가 더 주요하며, 

      - False Negative, False Positve 가 동등하게 중요하면 --> F1 Score

      - False Positive 가 더 비용이 크면                                       --> F0.5 Score

      - False Negative 가 더 비용이 크면                                     --> F2 Score

를 사용합니다. 

 

F-Measure and Adjusted F-Measures: F1 Score, F2 Score, F0.5 Score

 

 

 

[ Reference ] 

(1) Tour of Evaluation Metrics for Imbalanced Classification
: https://machinelearningmastery.com/tour-of-evaluation-metrics-for-imbalanced-classification/

(2) Josephine S Akosa, et. al., "Predictive Accuracy: A Misleading Performance Measure for Highly Imbalanced Data", Paper 942-2017

 

반응형
Posted by Rfriend

댓글을 달아 주세요