Create Opportunities

[인공지능 응용] 데이터 불균형 문제 (3) 본문

인공지능

[인공지능 응용] 데이터 불균형 문제 (3)

kimjaeyoon 2022. 10. 4. 12:47

Oversampling

!!오버 샘플링의 기본 전략은 소수 클래스를 잘 설명하는 가상의 관측치를 생성하는 것임.

 

1. Resampling

- 기존에 가지고 있는 소수 클래스의 개수가 매우 적음

- 기존 관측치 복제

- 적은 수의 관측치를 계속 복제한다고 해서, 새로운 정보를 얻기는 한계가 있음

- 소수 클래스에 과적합될 수 있음

 

2. SMOTE

- 소수 클래스의 분포를 가장 잘 설명할 수 있도록!

** 수행 절차

1. 소수 클래스에서 각 관측치마다 k개의 주변 관측치 탐색

2. 랜덤하게 주변에 있는 관측치들 중 하나를 선택

3. 선택된 두 관측치(자기 자신&주변) 사이의 거리를 산출

4. 아래의 식을 만족하는 곳에 새로운 관측치 생성

분류 경계선 수정됨.

 

3. Borderline-SMOTE

- 관측치는 모델링 관점에서 Borderline에서 가까울수록 중요하다.

1. 소수 클래스 임의의 관측치에 대해서 주변 k개를 탐색

2. k개 중 다수 클래스 수를 확인 / 0개면? > Borderline이 아니다.(Safe) / 섞여있다? > Borderline이다. (Danger)

3. Danger 관측치에 대해서 SMOTE 적용 (랜덤하게 s개 샘플을 생성)

4. 분류 경계선 수정 / SMOTE보다 더 확실하게 Borderline을 majority쪽으로 밀어낼 수 있다. 

 

 

4. ADASYN

- Borderline 인근 샘플링에 좀 더 집중하기 위한 방법

- 새로운 지표 정의 (각 소수 클래스 관측치 주변에 얼만큼 많은 다수 클래스 관측치가 있는가를 정량화)

 

1. 소수 클래스에 속하는 모든 관측치들의 r_i를 계산 (주변 k개 관측치들을 탐색하여 r_i를 구함)

2. 전체 r_i 값으로 normalize (확률로, 전체 합 1) -> 몇 퍼센트의 확률로 majority class에 가까울 것이다.

3. normalize된 ?%에 100을 곱한 개수만큼 sample을 생성한다.

  

++ GAN, VAE도 oversampling으로 현장에서 많이 사용되곤 함.

 

그래서..

Oversampling은,

장점 : 정보 손실이 없고 대부분의 경우 undersampling 보단 나음

단점 : 과적합 가능성 존재, 계산 시간이 증가, 노이즈와 이상치에 민감함