티스토리 뷰

클래스 불균형 

 

https://stats.stackexchange.com/questions/351638/random-sampling-methods-for-handling-class-imbalance

- 어떤 데이터에서 각 클래스가 가지고 있는 데이터의 양에 큰 차이가 있는 경우를 보통 클래스 불균형이 있다고 함

- 불균형 데이터를 사용하여 모델링 할 경우 관측치 수가 많은 데이터를 중심으로 학습이 진행되기 때문에 관측치가 적은 데이터에 대한 학습은 제대로 이뤄지지 않은 가능성 큼

ex) 신용사기 문제, 의학적 진단 등.. -> 불균형을 해결하는 것이 중요 

 

 

1. Undersampling(과소표집)

- 무작위로 정상 데이터를 일부만 선택해 유의한 데이터만 남기는 방법

- 많은 클래스의 데이터를 적은 클래스의 수만큼 감소시킴 

 

 

 

2. Oversampling(과대표집) 

- 사전에 정해진 기준 또는 기준없이 무작위로 소수 데이터를 복제하는 방법

- 적은 클래스의 데이터를 많은 클래스의 수만큼 증가시킴

- 데이터를 증가시킬때 기존의 데이터를 복제하여 증가시키기에 과적합 문제가 발생할 수 있음 

 

 

(1) SMOTE - Synthetic Minority Over-sampling Technique 

- 일종의 과대 표집 방법, 다수 클래스를 샘플링하고 기존의 소수 샘플을 보간하여 새로운 소수 인스턴스를 합성해내는 방법

- 과대 표집의 경우 중복된 값이 너무 많이 생성되는 과적합이 발생되고, 과소 표집은 중요 데이터 손실 우려 있음 

-> SMOTE 사용

 

<순서>

1. 알고리즘을 통해 소수 클래스에 대해 새로운 데이터 생성하기

2. 소수 클래스의 데이터를 하나를 찾고 해당 데이터와 가까운 K개의 데이터를 찾은 후 주변 값을 기준으로 새로운 데이터를 생성하기

 

 

 

 

MLSMOTE(Multilabel Synthetic Minority Over-sampling Technique) 

 

 

 

(2) ADASYN (ADAptive SYNthetic sampling approach) 

 

 

 

 

 

 이외.. ( DAE - Denoising Autoencoder , GAN - Generative Adversarial Network, VAE - Variational Autoencoder)

 

 

 

 

 

3. Ensemble Sampling

- 부스팅 알고리즘은 샘플별 가중치 재 산정을 위해 매 약한 학습자를 순차적으로 학습하고, 이때 오버샘플링은 데이터 불균형을 해소해주는 효과를 가진다. 오버샘플링 후, 약한 학습자 학습 뒤, 샘플별 가중치를 재산정하고, 오버 샘플링된 샘플을 삭제하여 실행한다. -> 데이터 불균형 문제를 해결  

 


(0) AdaBoost

- Freund and Schapire, 1997 

- 앙상블 학습 알고리즘 중 가장 일반적으로 사용되고 있는 부스팅 알고리즘

 

- 소수 범주 표본에 대한 학습기회를 제공 ->  AdaBoost 알고리즘을 사용하여 다양한 부스팅 알고리즘이 데이터 불균형 문제 해결 

- 학습 초기에는 다수 범주에 편중된 표본 학습에서 시작되더라도 순차적으로 소수 범주 표본에 대한 학습기회가 많 아지게 됨 -> 데이터 불균형이 있어도 견고한 학습성이 있음 

- AdaBoost 알고리즘과 MGM-Boost 알고리즘은 분류자 생성 횟수가 25회를 넘어서면 오류 감소효과가 미미하다는 연구 결과(Opitz and Maclin, 1999)가 있음 

 

 

(1) RAMOBoost(Ranked Minority Oversampling in Boosting)

 

 

 

 

 

 

(2) RUSBoost

- Seiffert et al., 2008

- SMOTE 대신 각 부스팅 반복에서 RUS(Random Under Sampling)를 수행하여 동일한 목표를 달성 

 

 

 

(3) SMOTEBoost 

- k-nearest neighbors을 사용하여 minority class 만든 후 (SMOTE) , SMOTEBoost는 각 부스팅 반복에서 SMOTE 메서드를 삽입한다. 

- 모든 데이터에 동일한 가중치를 부여하는 것이라 각 부스팅 단계에서 소수 클래스에 더 많은 예를 제공 

 

 

 

(4) WOTBoost(Weighted Oversampling Technique in Boosting)

- arxiv.org/abs/1910.07892

- 각 부스팅 라운드에서 오버 샘플링 전략을 조정하여 더 많은 타겟 소수 데이터 샘플을 합성

-  조정은 가중 분포를 사용하여 시행

 

 

 

 

 

 

cf) 10 K fold  학습 결과 (Optiz and Macline, 1999)

 

 

 

<출처> 

1. github.com/dialnd/imbalanced-algorithms

2. www.kaggle.com/c/lish-moa/discussion/187946

3. rstudio-pubs-static.s3.amazonaws.com/627765_52cecaafb3d94145821dcb048ad50c3e.html

4. www.koreascience.or.kr/article/JAKO201223052004277.pdf

5. medium.com/urbint-engineering/using-smoteboost-and-rusboost-to-deal-with-class-imbalance-c18f8bf5b805

6. 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함