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라고 분류할 가능성이 높다.
데이터가 균형한 분포가 되도록 하는 두 가지 방법으로 Undersampling
과 Oversampling
이 있다.
- 언더 샘플링 (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