본문 바로가기
데이터 분석

불균형 데이터(Data Imbalance) 처리 및 해결 방법(2가지 측면)

by Data Lib 2023. 10. 20.

이번 포스팅에서는 불균형 데이터는 어떤 데이터를 말하는 것이고, 그 해결 방법은 어떤 기법이 있는지 다루겠습니다. 불균형 데이터는 'Data Imbalance'라고 하고 업무적으로 발생할 수 밖에 없는 경우들이 있습니다. 단순히 많은 데이터 수집으로 해결될 문제가 아니라는 뜻이죠. 

 

 

데이터 불균형이란?

불균형 데이터는 보통 타겟변수(Y)가 어느 한쪽이 너무 클 경우 불균형 데이터라고 합니다. 정상 범주의 관측치 수와 이상 범주의 관측치 수가 현저히 차이나는 Data를 Imbalance하다고 합니다. 예를 들어, 아래 3개의 업무에서 불균형 현상은 현실속에서 발생할 수 밖에 없죠. 이 부분을 데이터를 가공해 좀 더 정확도를 높이는 작업이 필요합니다. 

불균형 현상

  • (의료 서비스) 낙상 환자가 낙상이 발생하지 않은 사람보다 현저히 적음
  • (안전 서비스) 신고 발생 지역(격자)보다 발생하지 않은 지역이 현저히 적음
  • (신용카드) 사기 또는 이상 거래인 경우가 정상 거래인 경우보다 현저히 적을 때 이런 경우 데이터 불균형 발생

 

문제점

'정상'을 정확히 분류하는 것과 '이상'을 정확히 분류하는 것 중 일반적으로 '이상'을 정확히 분류하는 것이 더 중요합니다. 보통 이상 데이터가 Target 값이 되는 경우가 많기 때문입니다. 불균형한 데이터 세트는 '이상' 데이터를 정확히 찾아내지 못할 수 있다는 문제가 생깁니다. 

 

불균형 데이터(Data Imbalance)
불균형 데이터(Data Imbalance)


불균형을 해결하는 방법

 

불균형 데이터를 해결하는 방법은 데이터 수준과 알고리즘 수준으로 두가지로 나눠서 생각해 볼 수 있습니다. 몇가지 방법이 있지만 Case마다 그 효과가 다릅니다.  

 

데이터 수준

 

알고리즘 수준

  • 모델을 조정해서 해결
  • 각 클래스의 train data의 size에 따라 가중 비용을 조정, 예를 들어, SVM의 C값의 설정, 의사결정나무 가중치 조정
  • 딥러닝의 Weight balancing : 데이터의 크기에 따라 학습률이 달라짐(불균형 해소)
  • 비용 기반 학습(Cost sensitive learning)
  • 단일 클래스 분류기법(Novelty detection)

 

마무리

솔직히 말해 모든 방법을 적용한다고 해도 불균형이 해소되지 않는 데이터도 있습니다. 하지만 특정 업무에 대해서는 놀랄만한 효과가 있는 분야도 있습니다. 예를 들어, 이미지 분야에서 데이터 증강(Data Augmentation)라는 기법을 사용하는데, 이것이 Over Sampling과 유사합니다.

 

또 다른 분야에서도 인위적이지만 데이터의 균형을 맞추어주는 작업이 효과가 좋은 경우가 있기 때문에 실제 업무에서 많이 사용합니다. 중요한 것은 데이터 분포를 잘 해석해서 업무에 맞게 적용하는 태도입니다.