본문 바로가기
데이터사이언스/인공지능을 처음공부하는 사람들을 위한 글

Undersampling과 Hybrid-resampling을 활용한 데이터 증강

by 미스터탁 2022. 12. 10.

지난 포스팅에서 Oversamplig method를 다루었는데, 이번 글에서는 간단하게 Undersampling method를 다루어 보도록 하겠다.

https://bluediary8.tistory.com/143

 

머신러닝의 클래스 불균형(Class imbalanced) 문제2 - SMOTE

저번 포스팅에서, 클래스 불균형에 대한 이야기와 해결하기 위한 방법들의 종류에 대해서만 소개하였습니다. https://bluediary8.tistory.com/132 DS/AI를 공부하기 위해 알아두면 좋은 것 8 - 클래스 불균

bluediary8.tistory.com

 

Oversampling은 소수 클래스의 데이터를 새롭게 생성해서, 학습하는 모델이 소수 클래스의 데이터를 무시하지 못하도록 하게 만드는 기법입니다. 반대로 Undersampling은 다수 클래스의 데이터를 일부 제거해서 비율을 맞춰주는 기법입니다.

 

Undersampling

Random Under Sampling

Random Over Sampling과 비슷하게, 랜덤하게 다수 클래스 데이터를 선택해서 지우는 기법입니다. 

 

Tomek Links

Undersampling 기법 들 중 가장 널리 쓰이는 기법(사실 Oversampling이 가장 많이 쓰입니다)입니다. BLSMOTE는 Borderline근처에 있는 소수 데이터 클래스를 증강시키는 기법인데, Tomek links도 비슷하게 Borderline 부근에 있는 다수클래스 데이터를 제거하는 기법입니다. BLSMOTE와는 조금 다른 방식으로 작동하는 데 Majority dataminority data의 거리가 근접해 있을 때 majority data를 제거합니다.

 

EasyEnsemble

Majority dataminority data를 동일 수 만큼 random sampling하고 추출된 데이터를 사용하여 classifier를 학습합니다. 그리고 이 과정을 K 반복합니다. (Random over sampling과 Random under sampling이 결합된 형태라고 할 수 있겠네요)

 

Undersampling기법 들은 Oversampling기법에 비해 가지는 장점은 명확합니다. 데이터의 수를 줄이기 때문에, classifier의 학습 속도를  향상 시킬 수 있습니다. 하지만, 결국에 실제 데이터를 제거 하는 것 이기 때문에, 신중할 필요가 있습니다. (우리는 항상 좋은 품질의 데이터의 수가 중요합니다. 이러한 이유로 Oversampling이 더 널리 사용됩니다.)

 

 

Hybrid-resampling

Oversampling과 Undersampling은 각각의 장단점이 존재합니다. 이 두 방법의 장점을 결합하기 위한 Hybrid-resampling방법을 알아보도록 하겠습니다. 

SMOTE + Tomek-link

SMOTE를 이용하여 소수 클래스 데이터를 증강시키고, Tomek-link를 활용해서 다수 클래스 데이터를 제거하는 기법입니다.

 

SMOTE  IPF

이 논문에서는 SMOTE의 단점을 지적(noise databorderline instanceclassifier의 성능을 저하시킴)하고,  Iterative Partitioning Filter (IPF)라는 ensemble기반 noise filter를 제안하여 SMOTE와 결합시키는 시키는 방법을 개발 하였습니다. 

 소수 클래스 데이터에 대해서는 SMOTE를 적용시키고, cross validation을 통해 여러 모델을 학습하고 평가하여 여러 모델이 오분류하는 데이터를 noise로 구분(voting)합니다. 그리고 Noise데이터를 제거하고 이 과정을 반복합니다. 

반응형

댓글