
정형 데이터 증강 기법 part10: ROSE
요약
ROSE는 정형 데이터의 클래스 불균형을 해결하기 위해 이론적 근거를 바탕으로 섭동을 가하는 데이터 증강 기법입니다. KDE의 Silverman 규칙을 활용하여 적절한 표준편차를 결정하며, 특정 클래스 증강을 넘어 데이터셋 전체를 치환하여 유연성을 높입니다.
핵심 포인트
- 단순 복제가 아닌 섭동(Perturbation)을 통한 새로운 데이터 생성
- Silverman의 규칙을 적용한 정규분포 기반의 이론적 섭동 결정
- 오버/언더 샘플링을 넘어 데이터셋 전체를 치환하는 방식
- 과적합 방지 및 데이터 활용의 유연성 향상
TL; DR
- ROSE는 Random Over Sampling (ROS)처럼 데이터를 그대로 복제하는 것이 아니라, 섭동(Perturbation)을 가함으로써 새로운 데이터 포인트를 생성한다.
- 해당 섭동은 KDE에서의 대역폭(Bandwidth)에 대한 경험적 규칙인 Silverman의 규칙을 따라 표준편차가 결정되는 정규분포(Normal Distribution)이다.
- 소수 클래스 데이터의 증강이 아니라, 데이터셋 전체의 치환을 수행함으로써 데이터 활용의 유연성을 향상시킨다.
기본 정보
SMOTE 기사에서 설명했듯이, 폭넓은 분야에서 사용되는 정형 데이터(Tabular Data)에는 클래스 불균형(Class Imbalance)이라는 큰 과제가 있습니다. 이를 해결하기 위해 사용되는 것이 정형 데이터 증강(Tabular Data Augmentation)이며, 그 대표격이 SMOTE입니다.
하지만 데이터 증강 기법은 SMOTE 외에도 몇 가지 존재합니다. 그 대표격이 랜덤 오버 샘플링(Random Over Sampling, ROS)입니다. 이 기법은 원본 데이터를 단순 복제함으로써 데이터 불균형을 해소합니다. 그러나 ROS는 동일한 데이터를 생성하기 때문에, 머신러닝(Machine Learning) 모델의 과적합(Overfitting)을 유발할 위험이 있습니다. 따라서 원본 데이터에 어떠한 섭동(Perturbation)을 가하여, 원본 데이터와는 약간 다른 데이터를 생성함으로써 과적합을 완화하는 방식이 자주 사용됩니다(이러한 기법을 개인적으로 ROS 계열이라고 부릅니다. 비공식적입니다).
하지만 섭동을 가한다고 해도 어떤 섭동이 좋은지는 알 수 없습니다. 예를 들어 섭동이 너무 크면 원본 데이터의 성질에서 크게 벗어나 다른 클래스 영역으로 침범할 수도 있고, 반대로 너무 작으면 과적합을 유발할 수도 있습니다. 그렇기 때문에 가해지는 섭동에는 어떠한 이론적 보증이 있으면 안심할 수 있습니다. 본 기사에서 소개하는 **Random Over Sampling Examples (ROSE)**는 바로 이론적 근거에 기반하여 섭동을 가하는 기법입니다.
ROSE는 지금까지 설명해 온 다양한 기법과 비교했을 때 약간 특수한 점이 있습니다. 그것은 단순히 오버 샘플링(Over-sampling) 혹은 언더 샘플링(Under-sampling)을 하는 것이 아니라, 원본 데이터를 다수 클래스나 소수 클래스에 관계없이 모두 치환한다는 점입니다. 원 논문 내에서도 이를 통한 이점 등이 설명되어 있으므로, 본 기사에서도 가볍게 언급하고자 합니다.
ROSE를 설명하기 위해 몇 가지 예비 지식을 설명할 필요가 있습니다. 이를 알고 계신 분들은 특히 건너뛰셔도 무방하며, 전체를 읽을 여유가 없는 분들을 위해 TL; DR 장을 읽는 것만으로도 기법의 개요를 이해할 수 있도록 구성했습니다.
예비 지식
ROSE를 이해하는 데 필요한 예비 지식을 설명하겠습니다. 참고한 사이트는 현재 도쿄 대학의 Suzuki 교수님의 자료입니다.
KDE
KDE란 Kernel Density Estimation의 약자로, 한국어로는 커널 밀도 추정이라고 합니다. 이는 수중에 있는 데이터(표본)로부터 모집단의 확률 밀도 함수(Probability Density Function)를 추정하는 비모수적(Non-parametric) 기법 중 하나입니다. 아마 아래 그림과 같이 히스토그램에서 그럴듯한 분포를 그리는 그림을 본 적이 있을 것입니다. 그것은 대부분의 경우 KDE일 것입니다.

평소 우리가 보는 정형 데이터는 모집단에서 추출된 표본이며, 비용 등의 문제로 모집단 전체를 탐색하여 모집단의 확률 밀도 함수를 산출하는 것은 어렵습니다. 예를 들어, 일본 국민 전체의 키를 측정하여 그 분포를 조사하고 싶어도 이는 개인이나 기업 단독으로 수행하기 어렵습니다. 또한 키 정도라면 어떻게든 될지 모르지만, 그 외에 체중이나 혈압 등을 측정하려고 하면 막대한 비용이 듭니다. 따라서 모집단의 일부 정보만을 사용하여 분포를 추정하고자 하는 수요가 있습니다.
예를 들어, 키의 분포를 추정하고 싶을 때는 모집단의 분포가 정규분포(Normal Distribution)라고 가정해도 좋을 것입니다. 즉, 표본의 평균과 불편 표준 편차(Unbiased Standard Deviation)를 사용하여 분포를 추정할 수 있습니다. 하지만 현실적으로는 그러한 분포 가정이 어려운 경우가 있습니다. 그런 경우에는 모집단의 분포를 가정하지 않고, 얻어진 데이터만을 사용하여 분포를 추정할 수 있다면 편리합니다. 그러한 방법을 비모수적 기법이라고 합니다.
KDE는 그러한 기법의 대표적인 방법으로, 모집단 분포에 대한 가정이 적기 때문에 널리 사용됩니다. 구체적인 동작에 들어가기 전에 KDE를 직관적으로 설명하자면, 수중에 있는 데이터 각각에 대해 확률 밀도 함수를 예상하고, 그것을 모든 데이터에 대해 합산함으로써 전체의 확률 밀도 함수를 추정한다는 흐름이 됩니다. 일차원 데이터
먼저, 하나의 데이터
이러한
자, 방금 전에는
라고 씁니다. 이때
입니다. 즉
자, 이것들을 사용하여 모집단의 확률 분포
이와 같이 커널 함수(Kernel Function)의 합산에 의해 복잡한 모집단의 분포를 추정하려는 기법이 KDE입니다.
Silverman의 규칙
앞서 설명한 KDE(Kernel Density Estimation)에서는 분포의 확산을 제어하는 파라미터인 대역폭 (Bandwidth)
그 값으로 권장되는 것이 Silverman의 규칙입니다. 이는 이러한 값을 설정하면 잘 작동한다는 경험칙 (Heuristic)에 기반한 것으로 보이며, 특히 이론적 근거는 없다고 스즈키(Suzuki) 선생님의 자료에는 적혀 있었습니다 (저도 거의 모르기 때문에 질문을 받아도 곤란합니다). 다만, Gemini에 따르면 이론적 보장이 있다고 하는데, 저는 그렇게까지 신뢰하지 않으므로 언급하는 정도로 그치겠습니다.
우선 앞서 생각했던 1차원 데이터의 경우를 예로 들면, Silverman의 규칙에 따라 결정되는 대역폭은
가 됩니다. 또한, 이때
자, 이것은 1차원 데이터의 이야기이며, 다차원으로 확장하면 식이 약간 달라집니다. 여기서 데이터의 수가
여기서,
알고리즘 소개
자, 드디어 ROSE의 알고리즘을 소개할 수 있게 되었습니다. 위의 내용을 이해하고 있다면 간단합니다. 하지만 잘 모르겠다는 분들도 많을 것이라 생각합니다. 따라서 위의 내용을 이해하지 못한 분들을 위해 간단히 설명하자면, 위의 규칙은 데이터 분포의 확산을 추측하기에 적절한 값을 구하기 위한 식이라고 생각하셔도 특별한 문제는 없습니다. 그럼 알고리즘 설명을 진행하겠습니다.
클래스 선택
데이터셋 전체에 존재하는 클래스 중에서 하나를 무작위로 선택합니다. 예를 들어 이진 분류 (Binary Classification) 태스크인 경우, 다수 클래스(Majority Class)와 소수 클래스(Minority Class) 중 하나를 각각 1/2의 확률로 선택합니다.
데이터 선택
1에서 선택된 클래스에 속하는 샘플을 데이터셋 전체 중에서 무작위로 하나 선택합니다.
섭동 (Perturbation) 부여
2에서 선택된 샘플에 대하여 정규 분포 (Normal Distribution)를 따르는 섭동을 가하여 새로운 샘플을 생성합니다. 이 섭동의 크기는 특성량 (Feature)마다 다릅니다. 구체적으로는 앞서 언급한 Silverman의 규칙을 사용하여 특성량마다 계산된 대역폭을 표준 편차 (Standard Deviation)로 삼고, 평균이 0이 되는 정규 분포를 사용하여 각 특성량마다 섭동을 생성합니다.
단, 주의사항으로서 대역폭을 계산할 때는 각 클래스에 속하는 데이터만을 사용하여 계산된 표준 편차를 사용합니다. 즉, 스텝 1에서 다수 클래스가 선택된 경우, 다수 클래스 데이터만을 사용하여 표준 편차를 계산하고, 그것을 사용하여 대역폭을 계산합니다. 데이터 수 $n$에 관해서는 모든 데이터 수를 사용하는 것으로 보입니다. 이에 대해서는 사양인지 오류인지 모르겠으나, 약간 부자연스러운 느낌은 듭니다.
생성 루프
1~3의 동작을 필요한 데이터 수가 채워질 때까지 실행하며, 최종적으로 얻어진 샘플 군을 새로운 데이터셋으로 합니다.
즉, 데이터에 섭동을 가하여 새로운 데이터를 만들고 있을 뿐, 어려운 동작 자체는 수행하지 않습니다. 또한 특징적인 점은 스텝 1인데, 이는 다수 클래스와 소수 클래스 양쪽 모두에 대해 수행한다는 점입니다. 즉, 이 기법에서는 모든 데이터가 확장 데이터로 교체됩니다. 또한, 등확률로 클래스를 선택하기 때문에 필연적으로 각 클래스의 데이터 불균형 (Data Imbalance)은 해소됩니다.
이것에는 어떤 이점이 있을까요? 저자들은 원 논문에서 원본 데이터를 사용하여 머신러닝 모델의 검증을 수행할 수 있으며, 이를 통해 모델 학습 시 교차 검증 (Cross Validation)을 위해 훈련 데이터를 분할함에 따라 발생하는 유용한 정보의 손실을 경감할 수 있다고 밝혔습니다.
또한, 최종적으로 생성되는 데이터 수는 설정할 수 있습니다. 기본적으로는 총합이 원본 데이터의 수와 같아지도록 하면 될 것으로 보이지만, 더 많게 하거나 더 적게 하는 것도 가능합니다 (단, 어느 정도의 값이 좋은지는 불명).
Python을 이용한 사용 예시
이하에 smote-variants를 이용한 구현 예시를 보여드립니다. 참고로 코드는 Gemini를 사용하여 출력한 것입니다.
import matplotlib.pyplot as plt
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
...
실행 결과 그림은 다음과 같습니다.

각 기법에 따른 데이터 분포 비교. 왼쪽부터 원본 데이터, SMOTE 확장 후 데이터, ROSE 적용 후 데이터
보시는 바와 같이, 소수 클래스 (Minority Class) 데이터가 SMOTE와 비교했을 때 상당히 넓은 범위로 생성되어 있음을 알 수 있습니다. 이는 ROSE가 선형 보간 (Linear Interpolation)이 아닌 기법이기 때문에, 더욱 다양성 있는 데이터를 생성할 수 있기 때문인 것으로 생각됩니다. 한편, 다수 클래스 (Majority Class) 데이터에 관해서는 교체(Replacement)가 이루어지지 않은 것으로 보입니다. smote-variants의 설정을 변경하면 동작을 바꿀 수 있지만, 이번 코드는 교차 검증 (Cross-validation) 등을 수행하는 것을 전제로 하지 않으므로, 다수 클래스에 관해서는 원본 데이터를 사용해도 문제없을 것입니다.
또한, 각각의 F1-Score는 다음과 같습니다.
Original F1: 0.0741
SMOTE F1: 0.1053
ROSE F1: 0.2105
ROSE는 다른 기법에 비해 F1-Score를 약간 향상시키는 데 성공했습니다.
하지만 알고리즘을 보시면 알 수 있듯이, ROSE는 특히 노이즈 데이터 (Noise Data) 처리를 수행하지 않습니다. 그 때문에 생성된 이미지를 보더라도 클래스 간의 분포 분리가 이루어지지 않았습니다. 비교적 최근의 기법이기에 그러한 노이즈 데이터 제거 등을 포함하는 것이 좋았을 것 같다는 생각도 들지만, 원 논문에는 그와 관련된 기재가 없었던 것으로 기억합니다.
인용
Menardi, Giovanna, and Nicola Torelli. "Training and assessing classification rules with imbalanced data." Data mining and knowledge discovery 28.1 (2014): 92-122.
Discussion

AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn ML의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기