오버 샘플링 기법을 적용해 불균형 데이터 문제 해결하기 3편 – Radius-SMOTE

2022.04.19

지난 글 오버 샘플링 기법을 적용해 불균형 데이터 문제 해결하기 2편 – SMOTE 에서는 SMOTE를 중심으로 데이터 샘플링의 작동원리와 한계를 알아보았습니다. 이 글에서는 IEEE 저널에 2021년 5월 14일에 실린 논문 (원제 : Radius-SMOTE : A New Oversampling Technique of Minority Samples Based on Radius Distance for Learning From Imbalanced Data)에서 제시하는 기존 SMOTE에 반경 거리(Radius Distance) 개념을 도입한 새로운 오버 샘플링 기법인 Radius-SMOTE를 소개합니다.


Radius-SMOTE의 샘플링 과정은 크게 3단계로 진행됩니다.

그림 1. 논문에서 제시한 샘플링 과정
(출처 : https://ieeexplore.ieee.org/document/9431216?figureId=fig1#fig1)

1단계 : Filtering(필터링)

첫 번째로 소수의 클래스에 해당하는 데이터(이하 소수 데이터)를 체에 한 번 거르는 작업입니다. BorderlineSMOTE에서 한 방식과 유사하게 각 소수 데이터에서 가장 가까운 k개의 이웃 데이터를 찾습니다. k는 임의의 값으로 지난 글에서처럼 3으로 설정하여 예시를 들어보겠습니다. 어떤 소수 데이터에서 가장 가까운 이웃 데이터 3개 모두가 다수 클래스에 속하는 데이터(이하 다수 데이터)라면 Noise 데이터, 그 외에는 Safe 데이터로 분류되고 Safe 데이터만이 2단계로 넘어가게 됩니다.

2단계 : Calculating(안전 거리 계산)

1단계를 거쳐 살아남은 소수 데이터는 각각 가장 가까운 다수 데이터까지의 거리를 계산하게 됩니다. 기존의 SMOTE는 소수 데이터와 그와 가까운 소수 데이터 사이에서 데이터를 합성할 뿐 그사이 어딘가 존재하는 다수 데이터를 고려하지 않았습니다. 따라서 Radius-SMOTE는 가장 가까운 다수 데이터까지의 거리까지를 안전 범위라고 보고 그 범위 내에서만 데이터가 합성되어 “Overlapping” 문제를 해결 할 수 있을 것으로 보았습니다. 다른 샘플링 기법과 차별화되며 개념상 핵심이라 할 수 있는 부분입니다.

3단계 : Generating(새로운 데이터 합성)

그림 2. Radius-SMOTE 개념의 시각화

그림 2는 1단계(Filtering) 와 2단계(Calculating)를 거친 후 3단계(generating) 과정의 모습을  2차원상에서 나타낸 것입니다. 새롭게 합성되는 노란색 데이터는 소수 데이터에서 가장 가까운 다수 데이터까지의 반경 내에서만 생성되는 것을 볼 수 있습니다. 결국 새롭게 합성되는 데이터는 소수 데이터의 밀집도를 높이고, 소수 데이터 사이에 다수 데이터가 없다는 것을 보장하는 효과를 갖게 됩니다.


코드 구현

위에서 살펴본 Radius-SMOTE가 제시하는 안전 반경 개념을 코드로 구현한 후, 논문에서 제시하는 실험 결과들과 비교해 보았습니다.

그림 3. 논문에 첨부된 불균형 데이터셋의 샘플링 후 분포 시각화
(출처 : https://ieeexplore.ieee.org/document/9431216?figureId=fig4#fig4)

그림 3은 논문에 삽입된 불균형 데이터셋(왼쪽 위)을 각각 SMOTE(오른쪽 위), BorderlineSMOTE(왼쪽 아래) 및 Radius-SMOTE(오른쪽 아래)를 이용해 샘플링 실시한 후 데이터 분포를 시각화 한 것입니다. 논문에서는 KEEL Repository에서 제공하는 여러 가지 공개된 실제 불균형 데이터셋에서 샘플링 전과 후의 성능을 비교하였습니다. 위 그림에서 사용된 데이터셋은 yeast-1-4-5-8_vs_7로 단백질 위치에 관련된 실제 데이터입니다. 샘플링 전 음성에 해당하는 보라색 점들 가운데 양성에 해당하는 노란색 점이 드물게 분포해 있는 것을 볼 수 있는데, SMOTE 계열의 샘플링 기법을 통해 소수 데이터에 해당하는 노란색 양성 데이터가 합성된 결과를 비교해 볼 수 있습니다.

그림 4. 구현한 코드로 논문과 같은 데이터셋의 샘플링 후 분포 시각화

그림 4는 그림 3과 같은 데이터셋에 대하여 사이킷런의 SMOTE, BorderlineSMOTE 그리고 Radius-SMOTE 논문에서 제안한 개념을 코드로 구현하여 샘플링 진행 후 시각화한 것입니다. 그림 3과 비교 해보면 무작위 요소가 포함되어 있어 그래프가 정확히 일치하지 않지만 분포의 형태가 유사한 것을 볼 수 있습니다. 특히, Radius-SMOTE의 특징인 Noise 데이터를 새로운 데이터 생성에 이용하지 않는다는 점, 기존 SMOTE 계열에서 관찰되는 직선으로 생성되던 분포의 형태가 반경 내 합성으로 방사형으로 바뀐 점이 관찰되는 것으로 보아 논문의 개념이 반영되었다고 볼 수 있을 것 같습니다.


실험 및 결과

구현한 Radius-SMOTE를 이용해 라인웍스에서 진행하는 의료데이터 프로젝트에 적용해 보았습니다. 공개된 EHR 데이터베이스인 MIMIC-III를 이용해 퇴원 후 30일 이내 재입원 여부를 예측하는 모델로서 LightGBM 알고리즘을 활용했습니다. 환자 방문 정보, 나이, 성별 등 기본정보, 의료행위, 처방 의약품을 변수로 선택하였고, 46,520명 환자를 대상으로 K-Fold(k=5) 교차 검증을 수행하였습니다. 최종적으로 58,976건의 방문데이터, 246개의 변수, 라벨에 해당하는 재입원수는 3390건(5.7%)으로 나타났습니다. 참고한 실험이 이전 블로그글에 게시되어 있으니 자세한 내용이 궁금하신 분들은 한번 읽어보시길 추천드립니다.

표 1. 30일 이내 재입원 예측 모델 성능 평가

샘플링 기법AUROC (Mean ± Std)AUPRC (Mean ± Std)
사용 안함0.7361 ± 0.19370.1937 ± 0.0295
SMOTE0.6852 ± 0.01620.1552 ± 0.0244
BorderlineSMOTE0.6882 ± 0.00870.1306 ± 0.0195
Radius-SMOTE0.7096 ± 0.01560.1297 ± 0.0281

모델의 성능을 평가하기 위하여 지표로서 AUROC와 AUPRC를 사용하였고 1에 가까울 수록 좋은 성능을 의미하며, 실험 결과는 표 1과 같습니다. 실험에서는 샘플링을 하지 않았을 때가 오버 샘플링 기법을 적용한 경우보다 성능이 좋았습니다. 샘플링 기법끼리 비교하였을 때는 Radius-SMOTE가 AUROC 성능은 가장 높게, AUPRC 성능은 가장 낮게 나타났습니다. 논문에서도 다양한 실제 불균형 데이터셋에 대하여 분류 모델 성능을 제시하였는데, 이 때에도 데이터셋 종류에 따라 특정 샘플링 기법이 더 좋은 성능을 보이는 등 샘플링 기법 사이에서도 평가 지표에 따라 성능의 편차가 다양했습니다. 논문에 따르면 Radius-SMOTE가 다른 샘플링 기법보다는 대체로 좋은 성능을 나타내기는 하지만 샘플링을 하지 않았을 경우보다 성능이 오히려 낮게 측정되는 경우도 관찰됩니다. 이는 오버 샘플링이 가지고 있는 과적합의 문제를 여전히 해결하지 못했기 때문이라 추측됩니다.


요약 및 한계

Radius-SMOTE는 SAFE와 NOISE 데이터로 필터링하는 과정이 선행되고 소수 클래스 데이터 사이의 선 위에서 데이터가 생성되는 것이 아니라 가장 가까운 다수 클래스 데이터까지의 거리를 안전 반경으로 하여 그 범위 내에서 데이터가 생성되므로 결정 영역의 혼란을 방지하고 데이터 중복 문제를 피할 수 있다는 장점을 가집니다. 다만, 알고리즘 특성상 소수 데이터에서 k개의 이웃을 찾는 필터링 단계뿐만 아니라 가장 가까운 다수 데이터를 찾아 반경을 계산 하는 단계가 추가되므로 데이터가 많아질수록 샘플링 시간이 크게 증가하는 단점을 가집니다. 또한 데이터셋에 따라서는 샘플링을 하는 경우 성능이 오히려 더 떨어질 가능성 역시 존재합니다. 이에 대하여 논문에서는 소수의 분리된 데이터가 혼란 영역(Disruption area)을 생성하기 때문일 것이라고 언급하고 있습니다.

그림 5. 소수 클래스의 분리 데이터가 혼란 영역을 만드는 예시
(출처 : https://ieeexplore.ieee.org/document/9431216?figureId=fig5#fig5)

이는 Noise로 분리되지 않을 만큼 주변에 소수 데이터가 존재하지만. 그 그룹 자체가 이상치에 해당할 때, 무시되었어야 할 그룹의 샘플 수가 증가하여 오히려 성능 하락에 영향을 미치는 것으로 추측해 볼 수 있습니다.


마치며

본 글에서는 불균형 데이터 문제를 해결하기 위한 최신 샘플링 기법과 이를 실제 데이터셋에 적용한 결과를 소개하였습니다. 기존의 여러 샘플링 기법은 데이터셋 별로 성능에 차이가 있었고 모든 데이터셋에서 우수한 성능을 내는 단 하나의 샘플링 기법은 존재하지 않았습니다. 다만, 기존 접근 방식을 개선하고 또 여러 샘플링 기법을 혼합하여 사용하는 등 최적의 샘플링을 통해 모델의 성능을 높이기 위한 다양한 시도는 지금도 계속되고 있습니다.

라인웍스도 EHR 데이터를 포함한 의료데이터에서 발생하는 다양한 문제를 해결하기 위해 많은 연구를 진행하고 있습니다. 라인웍스 머신러닝 그룹에서는 의료데이터를 이용한 예측 모델 연구와 이를 제품(MDwalks EXI, MDwalks CLUE)에 녹이기 위한 기술을 담당하고 있으며, 지금 도전을 함께할 머신러닝 엔지니어를 모시고 있습니다. 자세한 내용은 채용 공고를 확인해주시면 감사하겠습니다!

Seungwon Jee

Machine Learning Engineer, ML Group

Seungwon Jee