빅데이터 탐색 - 데이터 전처리 - 불균형 데이터 처리

반응형

 

불균형 데이터의 정의

  • 한 클래스의 샘플 수가 다른 클래스에 비해 월등히 많거나 적은 데이터 셋을 의미
    • 즉, 어떤 데이터에서 데이터의 양에 차이가 큰 경우를 의미 
    • 예) 병원에서 질병이 있는 사람과 질병이 없는 사람의 데이터 수집
    • 일반적 데이터 : 질병이 있는 사람이 질병이 없는 사람에 비해 적음
    • 불균형 데이터 : '병원의 데이터' 클래스가 '일반적 데이터' 클래스와의 월등히 많은 차이 존재

불균형 데이터의 문제점

  • 모델이 단순히 우세한 클래스를 택하여 정확도를 높이기 때문에 모델의 성능판별이 어려워짐
  • 즉, 정확도(accuracy)가 높아도 데이터 개수가 적은 클래스의 재현율(recall-rate)이 급격히 작아지는 현상 발생

 

  사실
참(Positive) 거짓(Negative)
실험 결과 참(Positive) TP(True Positive) FP(False Positive)
거짓(Negative) FN(False Negative) TN(True Negative)

<정확도와 재현율의 수식>

* 아래의 포스팅에서 이진 분류 결과표를 보고 이해하는게 더 쉬울 수 있음

2022.05.08 - [Programming/Machine Learning (Python)] - 분류 문제의 인공지능 성능 평가 - 분류결과표, 정확도, 평가 지표


불균형 데이터의 처리 방법

가중치 균형방법(Weighted Balancing)

  • 데이터에서 손실(loss)을 계산할 때 특정 클래스의 데이터에 더 큰 loss 값을 갖도록 하는 방법
  • 데이터 클래스의 균형이 필요한 경우, 각 클래스별 특정 비율로 가중치를 주어서 분석하거나 결과 도출하는 것

고정 비율 이용

  • 클래스의 비율에 따라 가중치를 두는 방법
  • 예) 클래스의 비율이 1:5일 경우
  • 가중치 : 5:1로 설정
  • 효과 : 적은 샘플 수를 가진 클래스를 전체 손실에 동일하게 기여

최적 비율 이용

  • 분야와 최종 성능을 고려해 가중치 비율의 최적 세팅을 찾으면서 가중치를 찾아가는 방법

언더샘플링(Undersampling)과 오버샘플링(Oversampling)

언더샘플링

  • 다수 클래스 데이터에서 일부만 사용하는 방법
    • 대표 클래스(Majority Class)의 일부만 선택
    • 소수 클래스(Minority Class)는 최대한 많은 데이터를 사용
  • 언더샘플링된 대표 클래스 데이터가 원본 데이터와 비교해 대표성이 있어야 함

오버 샘플링

  • 소수 클래스 데이터 증가
    • 소수 클래스의 본사본 생성
    • 대표 클래스의 수만큼 데이터 생성
  • 똑같은 데이터를 그대로 복사하는 것이기 때문에 새로운 데이터는 기존 데이터와 같은 성질을 가져야 함

효과

  • 데이터 비율 조정으로 인한 정밀도 향상

<언더샘플링과 오버샘플링 예시, 출처 캐글 Resampling strategies for imbalanced datasets>


참고

반응형