AI

Undersampling 과 Oversampling 설명

kar7mp5 2024. 7. 7. 18:06
728x90

1. 언더 샘플링과 오버 샘플링

출처: Resampling strategies for imbalanced datasets

데이터가 불균형한 분포를 가지는 경우, 모델 학습이 편향(bias)적일 수 있다.

예를 들어 A, B, C를 분류하는 모델 제작에서 데이터가 A는 1,000개 B는 10개 C는 10개라면 이 모델은 B와 C를 분류하는 데 어려움을 겪거나 모든 데이터를 A라고 분류할 가능성이 높다.

데이터가 균형한 분포가 되도록 하는 두 가지 방법으로 UndersamplingOversampling이 있다.

  • 언더 샘플링 (Undersampling)

데이터 셋에서 높은 비율을 차지하는 데이터 수를 감소시키는 방법이다.
데이터 수를 감소시키는 대신 정확도가 떨어진다.

예를 들어 A, B, C를 분류하는 데이터의 수가 다음과 같다고 가정하자.

데이터 종류 데이터 수
A 1,200
B 50
C 80
이를 Undersampling하면 다음과 같다.  
데이터 종류 데이터 수
A 50
B 50
C 50
  • 오버 샘플링 (Oversampling)

데이터 셋에서 높은 비율을 차지하는 데이터 수를 증가시키는 방법이다.
데이터 증강 방법으로는 어떤 방법이 있을까?
SMOTE라는 알고리즘이 있다.

2. SMOTE (Synthetic Minority Over-sampling Technique)


출처: Resampling strategies for imbalanced datasets

증가시킬 데이터 근방에 데이터를 추가하는 방식으로 데이터를 추가한다.
위 그림을 보면 알겠다만 유클리드 거리를 사용한다. 위와 같이 저차원에서는 준수한 성능을 보여줄 수 있지만, 고차원의 경우 부정확하다.

말 그대로 근방에 데이터를 추가하기 때문에 너무 적은 데이터를 사용해 SMOTE를 하게 되면 정확도가 감소할 수 있다.

728x90