SMOTE(Synthetic Minority Over-sampling Technique)
기초 원리부터 최신 대안까지
현실 세계의 데이터는 이상적인 형태로 존재하는 경우가 드물며, 그중에서도 클래스 불균형(Class Imbalance)은 머신러닝 모델 구축 시 마주하는 가장 보편적이면서도 근본적인 도전 과제 중 하나이다.1 클래스 불균형이란 데이터셋 내의 클래스 분포가 한쪽으로 크게 치우쳐, 하나의 클래스(다수 클래스, Majority Class)가 다른 클래스(소수 클래스, Minority Class)를 수적으로 압도하는 상태를 의미한다.2 이는 특정 분야의 예외적인 현상이 아니라, 다양한 산업 분야에서 일상적으로 발생하는 문제이다.
이러한 불균형은 여러 현실 세계의 시나리오에서 명확하게 나타난다.
- 의료 진단: 희귀 질병 데이터셋에서 특정 질병을 가진 환자의 사례는 건강한 개인의 사례에 비해 극히 적다.3
- 금융 사기 탐지: 전체 신용카드 거래 내역 중 사기 거래가 차지하는 비율은 매우 미미하다. 한 예시 데이터셋에서는 284,807건의 거래 중 단 492건(약 0.173%)만이 사기 거래로 기록되었다.3
- 제조업: 생산 공정에서 불량품은 의도적으로 그 발생 빈도가 낮게 관리되므로, 정상 제품에 비해 소수 클래스를 형성한다.6
- 고객 이탈 및 감성 분석: 서비스를 이탈하는 고객이나 부정적인 리뷰를 남기는 사용자는 일반적으로 만족하는 다수 고객에 비해 소수에 해당한다.3
이러한 데이터로 모델을 학습시킬 때 발생하는 핵심적인 문제는 모델의 편향(bias)이다. 대부분의 머신러닝 알고리즘은 전체적인 오류율(error rate)을 최소화하는 방향으로 학습을 진행한다. 따라서 데이터의 양이 압도적으로 많은 다수 클래스의 패턴에 과도하게 집중하게 되며, 이는 결과적으로 우리가 실제로 더 중요하게 탐지하고자 하는 소수 클래스에 대한 예측 성능을 현저히 저하시키는 결과를 낳는다.1
클래스 불균형 문제의 심각성은 ‘정확도의 역설(Accuracy Paradox)’이라는 개념을 통해 더욱 명확하게 이해할 수 있다.7 예를 들어, 99%가 정상(클래스 A)이고 1%가 사기(클래스 B)인 금융 거래 데이터셋이 있다고 가정해보자. 만약 어떤 모델이 모든 거래를 무조건 ‘정상’이라고만 예측한다면, 이 모델의 정확도(Accuracy)는 99%에 달하게 된다. 수치상으로는 매우 뛰어난 모델처럼 보이지만, 실제로는 단 한 건의 사기 거래도 탐지하지 못하는, 실용적으로는 아무 가치가 없는 모델이다.2 이처럼 정확도는 불균형 데이터셋에서 모델의 실제 성능을 심각하게 왜곡할 수 있으므로, 신뢰할 수 없는 평가 지표가 된다.2
이러한 평가의 함정을 피하기 위해서는 소수 클래스에 대한 모델의 성능을 정밀하게 측정할 수 있는 대안적인 지표를 도입하는 것이 필수적이다. 단순히 모델을 개선하는 것뿐만 아니라, 모델을 올바르게 평가하는 패러다임의 전환이 선행되어야 한다.
- 정밀도(Precision), 재현율(Recall/Sensitivity), F1-점수(F1-Score): 정밀도는 양성으로 예측한 것 중 실제 양성의 비율을, 재현율은 실제 양성 중 모델이 양성으로 예측한 비율을 나타낸다. F1-점수는 이 둘의 조화 평균으로, 두 지표가 모두 중요할 때 사용된다. 특히 재현율은 소수 클래스를 놓치지 않는 능력을 측정하므로 불균형 문제에서 핵심적인 지표가 된다.
- AUC-ROC (Area Under the Receiver Operating Characteristic Curve): 모델이 클래스를 얼마나 잘 구별하는지를 나타내는 지표로, 임계값의 변화에 따른 모델 성능을 종합적으로 평가한다.
- AUC-PR (Area Under the Precision-Recall Curve): 클래스 분포가 매우 불균형할 때 AUC-ROC보다 더 유용한 정보를 제공하는 지표로, 소수 클래스에 대한 모델 성능 변화에 더 민감하다.
- 기하 평균(Geometric Mean, G-Mean): 다수 클래스와 소수 클래스에 대한 정확도(또는 재현율)의 균형을 측정하는 지표로, 두 클래스 모두에서 좋은 성능을 보일 때 높은 값을 가진다. 특히 제조업 사례 연구 등에서 중요하게 활용된다.6
클래스 불균형 문제를 해결하기 위한 접근법은 크게 세 가지 범주로 나눌 수 있으며, SMOTE는 이 중 데이터 레벨 접근법에 속하는 대표적인 기법이다.
- 데이터 레벨 접근법 (Data-Level Approaches): 모델 학습에 들어가기 전, 데이터셋 자체를 수정하여 클래스 간의 균형을 맞추는 방법이다.
- 언더샘플링 (Undersampling): 다수 클래스의 샘플 수를 줄여 소수 클래스와의 비율을 맞춘다. 이 방법은 계산 효율성을 높일 수 있지만, 다수 클래스에 포함된 중요한 정보를 손실할 위험이 크다는 치명적인 단점이 있다.2 주로 데이터셋의 크기가 매우 커서 계산 자원이 부족할 때 고려된다.13
- 오버샘플링 (Oversampling): 소수 클래스의 샘플 수를 늘려 다수 클래스와의 비율을 맞춘다.
- 단순 무작위 오버샘플링 (Random Oversampling): 소수 클래스의 기존 샘플을 단순히 복제하는 방식이다. 이는 새로운 정보를 추가하는 것이 아니므로, 모델이 특정 샘플에 과적합(overfitting)될 위험이 매우 높다.10
- 합성 오버샘플링 (Synthetic Oversampling, SMOTE): 기존 샘플을 복제하는 대신, 소수 클래스 샘플들을 기반으로 새로운 합성(Synthetic) 샘플을 생성하는 방식이다. 이는 본 보고서의 핵심 주제로, 단순 복제보다 더 다양한 학습 데이터를 제공하여 과적합 문제를 완화하는 것을 목표로 한다.1
- 알고리즘 레벨 접근법 (Algorithm-Level Approaches): 데이터셋은 그대로 두고, 머신러닝 알고리즘 자체를 수정하여 소수 클래스에 더 많은 가중치를 부여하는 방법이다. 대표적으로 비용 민감 학습(Cost-Sensitive Learning)이 있으며, 이는 소수 클래스를 잘못 분류했을 때의 비용을 다수 클래스를 잘못 분류했을 때보다 훨씬 더 높게 설정하여 모델이 소수 클래스를 더 중요하게 학습하도록 유도한다.12
- 하이브리드 접근법 (Hybrid Approaches): 오버샘플링과 언더샘플링 기법을 결합하여 사용하는 방식이다. 예를 들어, SMOTE로 소수 클래스를 증강한 후, 생성된 데이터 주변의 노이즈나 클래스 경계가 모호한 샘플들을 제거하기 위해 토멕 링크(Tomek Links)와 같은 언더샘플링 기법을 적용하여 데이터를 “정제”하는 방식이 있다.14
이러한 분류 속에서 SMOTE의 독자적인 가치는 ‘정보 생성’에 있다. 단순 오버샘플링이 정보의 중복을, 언더샘플링이 정보의 손실을 야기하는 반면, SMOTE는 기존 소수 클래스 데이터의 특성 공간 내에서 새로운 가상의 정보를 만들어냄으로써 소수 클래스의 결정 영역을 보다 풍부하고 강건하게 확장하려는 시도라는 점에서 다른 기초적인 데이터 레벨 기법들과 근본적인 차이를 보인다.
표 1: 기초적인 리샘플링 기법 비교
| 기법 (Technique) |
메커니즘 (Mechanism) |
주요 장점 (Primary Advantage) |
주요 단점 (Primary Disadvantage) |
| 단순 무작위 언더샘플링 |
다수 클래스에서 무작위로 샘플을 제거하여 데이터 균형을 맞춤 |
데이터셋 크기 감소로 인한 학습 시간 단축 및 계산 효율성 증대 |
다수 클래스에 포함된 잠재적으로 유용한 정보의 손실 가능성 11 |
| 단순 무작위 오버샘플링 |
소수 클래스에서 무작위로 샘플을 선택하여 복제함 |
정보 손실이 없으며, 소수 클래스의 대표성을 강화함 |
새로운 정보를 추가하지 않고 동일한 샘플을 반복하여 과적합(overfitting) 위험이 매우 높음 11 |
| SMOTE |
소수 클래스 샘플과 그 이웃을 기반으로 새로운 합성(synthetic) 샘플을 생성함 |
과적합 위험을 완화하면서 소수 클래스의 데이터 다양성을 증가시킴 14 |
노이즈 증폭, 클래스 경계 모호화, 원본 데이터 분포 왜곡 등의 잠재적 위험 존재 14 |
SMOTE(Synthetic Minority Over-sampling Technique)의 핵심 원리는 기존의 소수 클래스 데이터를 단순히 복제하는 것이 아니라, 이들 사이를 보간(interpolate)하여 새로운 합성 데이터를 생성하는 것이다.1 이 과정을 통해 소수 클래스의 특징 공간(feature space)을 더 넓고 조밀하게 채워, 분류 모델이 소수 클래스를 인식할 수 있는 더 명확한 결정 경계(decision boundary)를 학습하도록 돕는 것을 목표로 한다.18
SMOTE 알고리즘의 작동 방식은 다음과 같은 단계별 절차로 분해할 수 있다.8
-
오버샘플링 양($N$) 설정: 먼저, 얼마나 많은 수의 합성 샘플을 생성할지 결정한다. 일반적으로 소수 클래스의 데이터 수가 다수 클래스와 동일해지는 1:1 비율을 목표로 설정하지만, 이는 문제의 특성에 따라 조정될 수 있는 하이퍼파라미터이다.16
-
소수 클래스 샘플 선택: 생성하고자 하는 합성 샘플의 수만큼 다음 과정을 반복한다. 먼저, 전체 소수 클래스 데이터 집합에서 하나의 데이터 포인트 $x_i$를 무작위로 선택한다. 이 데이터 포인트는 새로운 합성 샘플을 생성하기 위한 ‘기준점’이 된다.
-
K-최근접 이웃(K-Nearest Neighbors) 탐색: 기준점 $x_i$에 대해, 특징 공간상에서 가장 가까운 $k$개의 이웃 데이터 포인트를 찾는다. 이때 거리는 일반적으로 유클리드 거리(Euclidean distance)를 사용하며, 중요한 점은 이웃을 찾을 때 오직 소수 클래스에 속한 데이터 포인트들 중에서만 탐색한다는 것이다.19
-
이웃 선택: 3단계에서 찾은 $k$개의 이웃 중에서 하나를 무작위로 선택한다. 이 이웃을 $x_{nn}$이라고 지칭한다.
-
선형 보간을 통한 합성: 기준점 $x_i$와 선택된 이웃 $x_{nn}$을 잇는 가상의 선분을 생성하고, 이 선분 위의 임의의 한 점을 새로운 합성 샘플 $x_{new}$로 생성한다. 이 과정은 다음의 수식으로 표현된다.
\(x_\text{new}=x_i+λ \times (x_{nn}−x_i)\)
여기서 λ는 0과 1 사이의 균등 분포에서 추출된 임의의 난수이다. 만약 $λ=0$이면 새로운 샘플은 기준점 $x_i$와 동일하고, $λ=1$이면 이웃 $x_{nn}$과 동일해진다. $0<λ<1$의 값은 두 점을 잇는 벡터 위의 한 점을 의미하게 되어, 두 원본 데이터의 특성을 혼합한 새로운 샘플이 만들어진다.19
-
반복: 위 2~5단계를 목표한 오버샘플링 양 $N$에 도달할 때까지 반복하여, 생성된 합성 샘플들을 기존 데이터셋에 추가한다.
SMOTE 알고리즘의 성능과 생성되는 데이터의 특성은 하이퍼파라미터인 이웃의 수, 즉 $k$값에 크게 의존한다.21
$k$값은 사용자가 직접 설정해야 하며, 일반적으로 5가 기본값으로 사용된다.8
$k$값의 선택은 생성되는 합성 샘플의 국소성(locality)과 일반성(generality) 사이의 균형을 조절하는 중요한 역할을 한다.
- 작은 $k$값의 영향: $k$값이 작으면(예: $k=1$ 또는 $k=2$), 합성 샘플은 매우 인접한 이웃만을 기반으로 생성된다. 이는 SMOTE가 데이터의 매우 국소적인 미세 구조에 집중하게 만든다. 만약 소수 클래스 내에 노이즈나 이상치가 존재할 경우, 작은 $k$값은 이러한 노이즈 주변에만 집중적으로 새로운 샘플을 생성하여 노이즈를 증폭시키고, 특정 마이크로 클러스터에 과적합된 합성 데이터를 만들어낼 위험이 있다.24
- 큰 $k$값의 영향: $k$값이 크면, 더 넓은 범위의 이웃들을 고려하게 되어 생성되는 샘플들이 더 ‘평활화(smoothed)’되고 일반적인 특성을 띠게 된다. 이는 노이즈에 덜 민감해지는 장점이 있다. 하지만 $k$값이 너무 크면, 서로 다른 특성을 가진 소수 클래스의 하위 그룹(sub-cluster)들을 연결하는 부자연스러운 샘플이 생성되거나, 소수 클래스 영역에서 너무 멀리 떨어진 지점에 샘플이 생성되어 클래스 간의 경계를 모호하게 만들 수 있다.24
이러한 $k$의 역할은 KNN 분류 알고리즘에서 $k$가 결정 경계의 복잡도를 조절하는 원리와 직접적으로 연결된다. KNN에서 작은 $k$는 복잡하고 구불구불한 결정 경계를, 큰 $k$는 부드럽고 단순한 결정 경계를 만드는 것처럼, SMOTE에서도 $k$는 생성되는 합성 데이터 분포의 ‘복잡도’를 조절하는 레버 역할을 한다. 따라서 $k$값의 설정은 단순히 파라미터를 튜닝하는 것을 넘어, 생성될 데이터의 편향-분산 트레이드오프(bias-variance tradeoff)를 근본적으로 결정하는 행위로 이해해야 한다.
SMOTE의 작동 원리는 확률적 분포를 학습하는 통계적 모델링이 아니라, “특징 공간상에서 가까운 것들은 서로 관련이 있다”는 단순한 기하학적 휴리스틱(geometric heuristic)에 기반한다. 이는 SMOTE의 모든 장단점을 이해하는 핵심적인 열쇠이다. 선형 보간이라는 기하학적 가정은 SMOTE가 범주형 데이터에 직접 적용되기 어렵고, 클래스 경계가 복잡할 때 왜 문제를 일으키는지를 설명해준다.
파이썬 환경에서 SMOTE를 적용할 때 가장 표준적으로 사용되는 도구는 imbalanced-learn (또는 imblearn) 라이브러리이다.8
- 핵심 클래스:
imblearn.over_sampling.SMOTE 클래스를 통해 SMOTE 기능을 사용할 수 있다.23
- 주요 파라미터:
sampling_strategy: 리샘플링 후 소수 클래스의 목표 샘플 수를 제어한다. 실수(float) 값을 입력하면 다수 클래스 대비 목표 비율을 의미하며, 'auto'나 'minority'와 같은 문자열을 사용하면 다수 클래스와 동일한 수가 되도록 샘플을 생성한다. 다중 클래스 문제에서는 딕셔너리 형태로 각 클래스별 목표 샘플 수를 지정할 수 있다.23
k_neighbors: 위에서 설명한 이웃의 수 k값을 지정한다. 정수 값을 입력하거나, 사전에 학습된 최근접 이웃 알고리즘 객체를 전달할 수도 있다.22
random_state: 알고리즘 내에서 무작위 선택 과정(샘플 선택, 이웃 선택, λ값 생성 등)의 재현성을 보장하기 위해 사용되는 시드(seed) 값이다.23
SMOTE를 적용할 때 가장 중요한 실용적 지침은 데이터 유출(data leakage)을 방지하는 것이다. SMOTE는 반드시 훈련 데이터(training data)에만 적용하고 학습(fit)되어야 한다. 만약 전체 데이터셋에 SMOTE를 적용한 후 훈련/테스트 데이터로 분리하면, 테스트 데이터에 훈련 데이터의 정보가 합성 샘플을 통해 누출된 상태가 된다. 이는 모델의 성능을 비현실적으로 과대평가하게 만드는 심각한 오류이므로, 반드시 교차 검증(cross-validation) 파이프라인 내에서 또는 훈련-테스트 분리 후에 훈련 데이터에만 fit_resample 메소드를 적용해야 한다.20
# imbalanced-learn을 사용한 SMOTE 적용 예시
from sklearn.datasets import make_classification
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import classification_report
from imblearn.over_sampling import SMOTE
# 1. 불균형 데이터셋 생성
X, y = make_classification(n_classes=2, class_sep=2,
weights=[0.95, 0.05], n_informative=3,
n_redundant=1, flip_y=0,
n_features=20, n_clusters_per_class=1,
n_samples=1000, random_state=10)
# 2. 훈련/테스트 데이터 분리
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 3. SMOTE 적용 (훈련 데이터에만!)
smote = SMOTE(random_state=42)
X_train_resampled, y_train_resampled = smote.fit_resample(X_train, y_train)
# 4. 리샘플링된 데이터로 모델 학습
model = LogisticRegression(solver='liblinear')
model.fit(X_train_resampled, y_train_resampled)
# 5. 원본 테스트 데이터로 성능 평가
y_pred = model.predict(X_test)
print(classification_report(y_test, y_pred))
SMOTE가 어떻게 작동하는지에 대한 이해를 바탕으로, 이제는 SMOTE가 ‘얼마나 잘’ 작동하는지를 비판적으로 평가할 차례이다. 이 섹션에서는 SMOTE의 명확한 장점과 함께, 그 이면에 존재하는 심각한 단점과 사용을 둘러싼 논쟁들을 심도 있게 다룬다.
SMOTE가 데이터 불균형 문제 해결을 위한 표준적인 도구 중 하나로 널리 채택된 데에는 몇 가지 명확한 이유가 있다.
- 단순 오버샘플링 대비 과적합 완화: SMOTE의 가장 큰 장점은 기존 소수 클래스 데이터를 단순히 복제하는 것이 아니라, 새로운 합성 데이터를 생성한다는 점이다. 이는 모델이 학습할 수 있는 데이터의 다양성을 증가시켜, 특정 소수 샘플에만 과도하게 최적화되는 과적합 위험을 줄여준다. 결과적으로 모델의 결정 경계가 더 일반화되어, 이전에 보지 못한 새로운 데이터에 대한 예측 성능을 향상시키는 데 기여한다.9
- 정보 손실 부재: 다수 클래스의 샘플을 제거하는 언더샘플링 기법과 달리, SMOTE는 잠재적으로 유용한 정보를 담고 있을 수 있는 다수 클래스의 데이터를 버리지 않는다. 이로써 정보 손실의 위험 없이 데이터의 균형을 맞출 수 있다.11
- 모델 일반화 성능 향상: 소수 클래스가 존재하는 특징 공간을 새로운 합성 샘플들로 채워줌으로써, SMOTE는 분류 모델이 더 강건하고 명확한 결정 경계를 학습하도록 돕는다. 이는 결과적으로 모델의 일반화 성능, 즉 새로운 데이터에 대한 예측 능력을 향상시키는 효과를 가져온다.14
SMOTE는 강력한 도구이지만, 그 메커니즘의 단순성에서 비롯되는 여러 가지 내재적 한계와 위험을 안고 있다. 이러한 단점들을 이해하지 못하고 맹목적으로 사용할 경우, 오히려 모델 성능을 저하시키는 결과를 초래할 수 있다.
- 노이즈 증폭 (Noise Amplification): 만약 소수 클래스 데이터 내에 노이즈(noise)나 이상치(outlier)가 포함되어 있다면, SMOTE는 이 문제를 해결하는 것이 아니라 오히려 증폭시킬 수 있다. SMOTE 알고리즘이 노이즈 샘플을 기준점으로 선택하거나, 그 이웃으로 포함시킬 경우, 이 노이즈 샘플을 기반으로 새로운 합성 노이즈를 생성하게 된다. 이는 데이터셋 내의 ‘나쁜’ 데이터의 비율을 증가시켜 모델의 학습을 심각하게 방해하고 성능을 저하시키는 원인이 된다.11
- 클래스 중첩 발생 (경계 모호화): SMOTE의 가장 치명적인 약점 중 하나는 다수 클래스의 분포를 전혀 고려하지 않고 기계적으로 작동한다는 점이다. 만약 어떤 소수 클래스 샘플이 다수 클래스와의 경계면에 매우 가깝게 위치해 있다면, SMOTE는 이 샘플과 그 이웃을 연결하는 과정에서 다수 클래스 영역 안으로 침범하는 합성 샘플을 생성할 수 있다. 이는 두 클래스 간의 경계를 명확하게 만드는 것이 아니라, 오히려 모호하게 만들어 분류 모델이 두 클래스를 구분하는 것을 더욱 어렵게 만든다.8 SMOTE의 이러한 ‘경계에 대한 무지’는 그 대부분의 주요 결함이 발생하는 근본 원인이며, 이는 Borderline-SMOTE나 ADASYN과 같은 진화된 변종들이 등장하게 된 직접적인 동기가 되었다.
- 원본 데이터 분포의 왜곡: SMOTE가 생성하는 샘플은 실제 관측된 데이터가 아닌, 선형 보간이라는 가정 하에 만들어진 가상의 데이터이다. 따라서 이 합성 데이터는 실제 데이터가 가지는 복잡하고 비선형적인 분포를 정확하게 반영하지 못할 수 있다. 이는 모델이 실제 데이터에서는 존재하지 않는, SMOTE 프로세스 자체의 인공적인 패턴(artifact)을 학습하게 만들어 분포를 왜곡시킬 위험을 내포한다.14
- 고차원 공간에서의 비효율성: 특징(feature)의 수가 매우 많은 고차원 공간에서는 ‘차원의 저주(curse of dimensionality)’로 인해 유클리드 거리 기반의 ‘최근접 이웃’ 개념이 점차 의미를 잃게 된다. 모든 점들이 서로 멀리 떨어져 있는 것처럼 보이게 되어, 이웃을 기반으로 하는 SMOTE의 성능이 저하될 수 있다.11
- 범주형 데이터 처리의 어려움: SMOTE의 핵심인 선형 보간 메커니즘은 연속적인 수치형 특징을 위해 설계되었다. ‘성별’이나 ‘도시명’과 같은 범주형 특징 사이에서는 선형적인 중간 지점을 정의할 수 없으므로, SMOTE를 직접 적용하는 것은 불가능하다. 이를 해결하기 위해서는 SMOTE-N이나 SMOTE-NC와 같은 특별한 변종 기법이 필요하다.11
SMOTE의 한계는 특히 의료와 같이 예측의 결과가 매우 중요한 고위험(high-stakes) 분야에서 더욱 심각한 논쟁을 불러일으킨다. 이 분야에서는 모델의 예측 정확도뿐만 아니라, 예측의 근거가 되는 ‘해석 가능성’과 ‘신뢰성’이 절대적으로 중요하기 때문이다. 의료 분야의 비판은 SMOTE가 생성한 데이터의 임상적 타당성(clinical validity)에 대한 근본적인 의문을 제기한다.28
- 핵심 비판: SMOTE가 통계적 지표를 향상시킬 수는 있지만, 그렇게 생성된 합성 ‘환자’ 데이터가 생물학적으로나 임상적으로 의미가 있는 존재인지에 대한 보장이 전혀 없다는 것이다.
- 비일관성의 증거: 한 뇌졸중 예측 연구는 이러한 비판을 뒷받침하는 구체적인 증거를 제시했다.28
- 비현실적인 데이터 증강: 연구에서는 단 20명의 실제 뇌졸중 환자 데이터를 기반으로 62명의 합성 환자 데이터를 생성했다. 소수의 실제 사례에서 파생된 다수의 합성 데이터가 과연 실제 환자들이 가질 수 있는 복잡하고 다양한 임상적 변동성을 제대로 표현할 수 있는지에 대해 심각한 의문이 제기되었다.
- 임상적 지식과 모순되는 특징 중요도: SMOTE를 적용한 후, 모델의 예측에 어떤 특징이 중요하게 작용했는지를 분석(SHAP 기법 사용)한 결과, 기존의 의학적 상식과 정면으로 배치되는 결론이 도출되었다. ‘거주지’나 ‘직업’과 같은 사회경제적 변수가 뇌졸중 예측에 가장 중요한 요인으로 나타난 반면, 의학적으로 뇌졸중의 핵심 위험 인자로 명확히 알려진 ‘고혈압’이나 ‘심장병’은 오히려 덜 중요한 변수로 평가되었다. 이는 모델이 실제 질병의 인과관계를 학습한 것이 아니라, SMOTE가 만들어낸 인공적인 데이터의 패턴을 학습했음을 시사한다.
이러한 비판은 데이터 과학자에게 중요한 시사점을 던진다. 통계적 성능과 특정 분야의 전문 지식(domain knowledge) 사이에는 심각한 긴장 관계가 존재할 수 있다. 데이터 과학자는 F1-점수나 AUC가 향상되었다는 이유로 ‘더 좋은 모델’이라고 판단할 수 있지만, 해당 분야의 전문가(예: 의사)는 그 모델의 예측 근거가 비상식적이라는 이유로 모델 자체를 거부할 수 있다. 따라서 의료 진단과 같은 고위험 분야에서 SMOTE를 사용할 때는, 정량적인 성능 지표 검증을 넘어, 반드시 해당 분야 전문가와의 질적 검토를 통해 모델의 논리적 타당성을 확보하는 과정이 수반되어야 한다.
앞서 논의된 원본 SMOTE의 명백한 한계들을 극복하기 위해, 머신러닝 연구 커뮤니티는 더 정교하고 목표 지향적인 여러 변종 알고리즘들을 개발해왔다. 이러한 진화의 과정은 SMOTE가 ‘맹목적인’ 생성기에서 점차 ‘지능적인’ 생성기로 발전해가는 역사라고 할 수 있다.
- 핵심 아이디어: Borderline-SMOTE는 분류 모델의 성능을 결정하는 데 있어 가장 중요한 데이터는 클래스 간의 경계선(borderline)에 위치한 소수 클래스 샘플들이라는 가정에서 출발한다. 소수 클래스 군집 내부에 깊숙이 위치하여 분류가 용이한 ‘안전한’ 샘플보다는, 다수 클래스와 인접하여 혼동을 일으키기 쉬운 ‘위험한’ 샘플 주변에 합성 데이터를 집중적으로 생성하는 것이 더 효과적이라는 아이디어이다.29
- 작동 메커니즘:
- 먼저, 모든 소수 클래스 샘플 각각에 대해 k개의 최근접 이웃을 찾는다.
- 이 k개의 이웃 중 다수 클래스에 속하는 샘플의 개수를 세어, 각 소수 클래스 샘플을 다음 세 가지 유형으로 분류한다 29:
- 노이즈 (Noise): $k$개의 이웃이 모두 다수 클래스인 경우. 이 샘플은 다수 클래스 영역에 고립된 이상치일 가능성이 높다.
- 위험 (Danger): $k$개의 이웃 중 절반 이상이 다수 클래스인 경우. 이 샘플은 클래스 경계선 상에 위치한 것으로 간주된다.
- 안전 (Safe): k개의 이웃 중 절반 미만이 다수 클래스인 경우. 이 샘플은 소수 클래스 군집 내부에 안전하게 위치한 것으로 간주된다.
- 마지막으로, 원본 SMOTE 알고리즘을 오직 ‘위험(Danger)’으로 분류된 샘플들에 대해서만 적용하여 새로운 합성 데이터를 생성한다.
-
개선점: 이 접근법은 소수 클래스 군집 내부의 ‘안전한’ 영역에 불필요한 샘플을 생성하는 것을 방지하고, ‘노이즈’로 판단되는 샘플을 증강 과정에서 배제함으로써 노이즈 증폭 위험을 줄인다. 분류 경계면을 정의하는 데 가장 중요한 샘플들에 생성 노력을 집중함으로써, 모델이 클래스 경계를 더 정교하게 학습하도록 돕는다.29
- 핵심 아이디어: ADASYN은 Borderline-SMOTE의 ‘중요한 샘플에 집중한다’는 아이디어를 한 단계 더 발전시킨다. 단순히 경계선에 위치한 샘플에 집중하는 것을 넘어, 학습하기 더 어려운 소수 클래스 샘플 주변에 더 많은 합성 데이터를 생성하는 적응적(adaptive) 방식을 취한다. 여기서 ‘학습하기 어렵다’는 것은 주변에 다수 클래스 이웃이 더 많은 경우를 의미한다.4
- 작동 메커니즘:
- 각 소수 클래스 샘플 $x_i$에 대해, k-최근접 이웃 중 다수 클래스 샘플의 비율($r_i$)을 계산한다. 이 $r_i$ 값은 해당 샘플의 ‘학습 난이도’를 정량화한 지표가 된다.29
- 계산된 모든 $r_i$ 값들을 정규화하여, 각 소수 클래스 샘플에 얼마만큼의 합성 데이터를 생성할지를 결정하는 밀도 분포를 만든다.
- $r_i$ 값이 높은(즉, 주변에 다수 클래스 이웃이 많아 학습하기 어려운) 샘플일수록 더 많은 수의 합성 데이터가 생성되도록 가중치를 부여받는다.15
-
개선점: ADASYN은 분류 경계를 동적으로 조정하는 데 초점을 맞춘다. 가장 분류하기 어려운 경계 영역에 생성 노력을 집중함으로써, 복잡한 분포나 여러 개의 다수 클래스 군집이 존재하는 데이터셋에서 특히 효과적인 성능을 보일 수 있다.29 이는 SMOTE가 맹목적으로 샘플을 생성하는 것에서 나아가, Borderline-SMOTE가 ‘어디에’ 생성할지를 결정하고, ADASYN은 ‘어디에, 얼마나 많이’ 생성할지를 동적으로 결정하는 진화의 과정을 보여준다.
- 핵심 아이디어: 이 접근법들은 SMOTE가 완벽하지 않다는 사실을 인정하는 데서 출발한다. SMOTE의 오버샘플링 과정에서 필연적으로 발생할 수 있는 노이즈나 클래스 간 중첩 문제를 해결하기 위해, 데이터 생성 후에 언더샘플링 기반의 ‘정제(cleaning)’ 단계를 추가하는 방식이다. 이는 SMOTE가 종종 단일 해결책이 아니라, 데이터 균형화 파이프라인의 첫 단계임을 시사한다.
- SMOTE + 토멕 링크 (Tomek Links):
- 먼저 SMOTE를 적용하여 소수 클래스를 오버샘플링한다.
- 그 후, 데이터셋에서 토멕 링크를 찾아 제거한다. 토멕 링크란 서로 다른 클래스에 속한 한 쌍의 데이터 (A,B)가 서로에게 가장 가까운 이웃일 때를 말한다. 이러한 쌍은 클래스 경계가 모호하거나 노이즈가 있는 영역을 나타낼 수 있다. 여기서 다수 클래스에 속한 샘플을 제거함으로써, 두 클래스 간의 경계를 더 명확하게 만드는 효과를 얻을 수 있다.14
- SMOTE + ENN (Edited Nearest Neighbors):
- 마찬가지로 SMOTE를 먼저 적용한다.
- 그 다음, ENN 알고리즘을 사용하여 데이터를 정제한다. ENN은 데이터셋의 모든 샘플에 대해, 그 샘플이 자신의 k-최근접 이웃의 다수결에 의해 잘못 분류되면 해당 샘플을 제거하는 방식이다. 이는 SMOTE가 생성한 노이즈성 합성 샘플이나, 경계를 모호하게 만드는 다수 클래스 샘플을 모두 제거할 수 있는 더 강력한 정제 기법이다.11
표 2: SMOTE와 주요 변종 기법 심층 비교
| 구분 |
SMOTE (원본) |
Borderline-SMOTE |
ADASYN |
| 핵심 아이디어 |
소수 클래스 내 샘플들 간의 선형 보간을 통해 합성 데이터 생성 |
클래스 경계선에 위치한 ‘위험한’ 소수 샘플에 집중하여 데이터 생성 |
학습하기 어려운(주변에 다수 클래스가 많은) 소수 샘플에 더 많은 데이터를 적응적으로 생성 |
| 생성 기반이 되는 샘플 |
모든 소수 클래스 샘플 중 무작위로 선택 |
이웃의 절반 이상이 다수 클래스인 ‘Danger’ 샘플에만 한정 29 |
모든 소수 클래스 샘플을 사용하되, 주변 다수 클래스 비율에 따라 생성량을 차등 분배 29 |
| 주요 장점/해결 문제 |
과적합 완화 및 데이터 다양성 확보 |
경계면을 명확히 하고, 노이즈 및 안전 영역에 대한 불필요한 생성을 방지 |
학습이 어려운 경계 영역에 생성 노력을 집중하여 분류 성능을 동적으로 최적화 |
이론적 논의를 넘어, SMOTE가 실제 산업 현장에서 어떻게 활용되고 구체적으로 어떤 성과를 내는지 정량적인 사례 연구를 통해 살펴본다. 이를 통해 SMOTE의 실용적 가치와 적용 시 고려해야 할 점들을 파악할 수 있다.
- 문제의 맥락: 금융 분야에서 신용카드 사기 탐지는 전형적인 불균형 데이터 문제이다. 전체 거래 중 사기 거래는 극소수이지만, 이를 놓쳤을 때 발생하는 피해는 막대하다. 따라서 모델의 목표는 전체 정확도보다는 사기 거래를 최대한 많이 탐지하는 것(높은 재현율)과 정상 거래를 사기로 잘못 판단하는 경우를 최소화하는 것(높은 정밀도) 사이의 균형을 맞추는 것이다.3
- 사례 데이터: 한 연구에서는 284,807건의 거래 데이터 중 단 492건(0.173%)만이 사기인 데이터셋을 사용했다.5
-
성능 영향: 이러한 극심한 불균형 데이터에 SMOTE나 SMOTE-ENN과 같은 하이브리드 기법을 적용했을 때, 분류 모델의 재현율과 F1-점수가 크게 향상되는 결과가 다수의 연구에서 보고되었다. 이는 모델이 소수의 사기 거래 패턴을 더 효과적으로 학습하게 되었음을 의미한다.31
- 문제의 맥락: 반도체 제조 공정에서 불량 칩을 조기에 발견하는 것은 막대한 비용 절감으로 이어진다. 여기서 ‘불량’은 소수 클래스에 해당하며, 이를 정확히 예측하는 것이 중요하다.6
- 사례 데이터 및 정량적 결과: 반도체 불량 칩 예측에 관한 한 연구는 SMOTE 적용 여부와 샘플링 비율에 따른 성능 변화를 상세히 보여준다.6
- SMOTE 미적용 시: 모델의 성능을 종합적으로 평가하는 지표인 기하 평균(GM)이 72%에 그쳤다. 특히, 사용된 알고리즘에 따라 성능 편차가 최대 47%까지 벌어졌으며, SVM과 같은 알고리즘은 27%라는 매우 저조한 성능을 보였다.
- SMOTE 적용 시 (100:100 비율): 양품과 불량품의 비율을 1:1로 맞춘 경우, 가장 높은 예측 성능을 기록했다. GM이 크게 향상되었을 뿐만 아니라, 알고리즘 간의 성능 편차도 크게 줄어들었다.
- 과도한 SMOTE 적용 시 (>100:100 비율): 불량품 클래스의 오버샘플링 비율을 1:1 이상으로 계속 늘리자, 오히려 모델의 예측 정확도가 감소하는 경향이 나타났다.
-
핵심 발견: 이 사례는 두 가지 중요한 실용적 지침을 제공한다. 첫째, “더 많은 것이 항상 좋은 것은 아니다”. SMOTE 적용 시 최적의 샘플링 비율이 존재하며, 과도한 오버샘플링은 오히려 성능을 해칠 수 있다. 둘째, SMOTE는 특정 알고리즘에 대한 의존도를 낮추고 모델 성능을 전반적으로 안정시키는 ‘성능 평준화’ 효과를 가져올 수 있다. SMOTE 적용 전에는 알고리즘 선택이 매우 중요했지만, 적용 후에는 다양한 알고리즘들이 준수한 성능을 보였기 때문이다.
- 문제의 맥락: 당뇨, 암, 심장 질환 등 특정 질병을 예측하는 모델에서 환자 그룹은 소수 클래스를 형성한다. 이 분야에서는 환자를 놓치는 경우(False Negative)의 비용이 매우 크기 때문에, 민감도(재현율)를 극대화하는 것이 무엇보다 중요하다.4
- 사례 데이터 및 정량적 결과:
- 한 당뇨병 예측 연구에서는 SMOTE 적용 후 모델 성능이 극적으로 향상되었다. SVM 모델의 경우, AUC 값이 0.598에서 0.991로, 로지스틱 회귀 모델은 0.613에서 0.987로 급증했다.32
- 당뇨병 환자의 테스토스테론 결핍을 예측하는 다른 연구에서는, SMOTE 적용 시 일부 모델의 전체 정확도는 소폭 감소했지만, 소수 클래스인 결핍 환자를 정확히 찾아내는 능력인 민감도(Sensitivity)가 유의미하게 증가했다고 보고했다.33
- 핵심 발견: 이 사례들은 SMOTE가 의료 진단 분야의 핵심 목표, 즉 희귀한 양성 사례를 정확하게 식별하는 모델의 능력을 획기적으로 향상시킬 수 있음을 명확히 보여준다. 이처럼 ‘성공’의 정의는 분야별로 다르며, SMOTE의 평가는 해당 분야의 핵심 목표와 직결된 지표를 통해 이루어져야 한다.
표 3: 산업별 사례 연구의 정량적 성능 향상 요약
| 산업 분야 |
주요 평가 지표 |
SMOTE 미적용 시 성능 |
SMOTE 적용 시 성능 |
핵심 시사점 |
| 금융 (사기 탐지) |
재현율, F1-점수 |
매우 낮음 (소수 클래스 무시 경향) |
유의미하게 향상 31 |
희소하지만 치명적인 이벤트를 탐지하는 모델의 능력을 강화함. |
| 제조업 (반도체 불량) |
기하 평균 (GM) |
72% (알고리즘 간 성능 편차 큼) |
72% 이상으로 크게 향상 (1:1 비율에서 최적) 6 |
최적의 샘플링 비율이 존재하며, 과도한 증강은 해로울 수 있음. 모델 성능을 안정화시킴. |
| 의료 (당뇨병 진단) |
AUC |
SVM: 0.598, LR: 0.613 |
SVM: 0.991, LR: 0.987 32 |
소수 클래스(환자)에 대한 모델의 판별 능력을 극적으로 향상시켜 진단의 신뢰도를 높임. |
SMOTE와 그 변종들이 데이터 불균형 문제에 대한 강력한 해법을 제공했지만, 연구의 흐름은 더 정교하고 강력한 딥러닝 기반의 생성 모델로 향하고 있다. 이 섹션에서는 SMOTE의 대안으로 떠오르는 생성적 적대 신경망(GAN)과 변이형 오토인코더(VAE)를 살펴보고, 이들의 이론적 우월성과 실용적 한계를 비판적으로 비교 분석한다.
- 핵심 아이디어: GAN은 두 개의 신경망이 서로 경쟁하며 학습하는 구조를 가진다. ‘생성자(Generator)’는 실제 데이터와 유사한 가짜 데이터를 만들고, ‘판별자(Discriminator)’는 생성자가 만든 데이터와 실제 데이터를 구별하려고 노력한다. 이 적대적 게임 과정을 통해, 생성자는 판별자를 속일 수 있을 만큼 매우 사실적인 데이터를 생성하는 능력을 학습하게 된다.10
- 테이블 데이터에의 적용 (CTGAN): 이미지 생성에 주로 사용되던 GAN을 테이블 형태의 데이터에 적용하기 위해 CTGAN(Conditional Tabular GAN)과 같은 변종들이 개발되었다. 이 모델들은 테이블 데이터의 복잡한 컬럼 간 상관관계를 모델링하고, 연속형과 범주형 특징이 혼합된 데이터를 처리할 수 있다.35
-
SMOTE 대비 장점: 이론적으로 GAN은 SMOTE보다 우월하다. SMOTE가 단순한 선형 보간에 의존하는 반면, GAN은 데이터의 전체적인 잠재 분포(underlying distribution) 자체를 학습하기 때문이다. 이는 SMOTE의 기하학적 한계에서 벗어나, 훨씬 더 다양하고 현실적인 합성 샘플을 생성할 잠재력을 가진다.34 일부 연구에서는 실제로 GAN 기반 오버샘플링이 SMOTE보다 높은 재현율을 달성했음을 보여주었다.37
- 핵심 아이디어: VAE는 데이터를 저차원의 잠재 공간(latent space)으로 압축하는 ‘인코더(Encoder)’와, 이 잠재 공간의 벡터로부터 원본 데이터를 복원하는 ‘디코더(Decoder)’로 구성된 생성 모델이다. VAE는 학습 과정에서 잠재 공간이 특정 확률 분포(주로 정규분포)를 따르도록 학습하므로, 이 잠재 공간에서 새로운 벡터를 샘플링하여 디코더에 통과시키면 새롭고 다양한 데이터를 생성할 수 있다.10
- 오버샘플링에의 적용: 소수 클래스 데이터만을 사용하여 VAE를 학습시킨 후, 학습된 잠재 공간에서 새로운 점들을 샘플링하고 이를 디코더에 입력하여 새로운 소수 클래스 합성 샘플을 생성하는 방식으로 오버샘플링을 수행할 수 있다.39
- SMOTE 대비 장점: GAN과 마찬가지로 VAE 역시 복잡한 비선형 데이터 분포를 학습할 수 있다. 일반적으로 GAN보다 학습이 안정적이며, SMOTE의 거리 기반 접근법이 한계를 보이는 고차원 데이터에서 더 강건한 성능을 보일 수 있다.40
이론적인 우월성에도 불구하고, 딥러닝 생성 모델(DGM)들이 실제 불균형 데이터 문제, 특히 테이블 데이터 환경에서 SMOTE를 압도하는 경우는 생각보다 드물다는 것이 여러 연구를 통해 밝혀지고 있다. 이는 이론과 현실 사이의 중요한 괴리를 보여준다.
- 놀라운 현실: 다수의 실증 연구에서 GAN이나 VAE와 같은 최신 생성 모델들이 전통적인 SMOTE 기법에 비해 눈에 띄는 성능 향상을 보여주지 못하는 경우가 많았다.41 일부 영향력 있는 연구자들은 SMOTE가 유행에서 벗어났으며 “거의 효과가 없다”고 주장하며, 샘플링 자체를 하지 않거나 다른 방법으로의 전환을 제안하기도 한다.44
- 성능 대 복잡성: 일부 연구에서 DGM이 더 높은 성능 지표를 달성하기는 했지만 37, 그 성능 향상 폭이 절대적인 관점에서 미미한 경우가 많았으며, 이는 DGM을 학습시키는 데 필요한 막대한 계산 비용과 복잡성을 고려할 때 실용성이 떨어진다는 비판으로 이어진다.40
- 딥러닝의 데이터 의존성: DGM이 효과적으로 학습하기 위해서는 상당한 양의 데이터가 필요하다. 그러나 불균형 문제의 본질은 바로 소수 클래스의 데이터가 ‘부족하다’는 것이다. 이처럼 극소수의 샘플만으로는 DGM이 소수 클래스의 분포를 제대로 학습하기 어려우며, 이는 결국 품질이 낮은 샘플을 생성하거나 학습 자체가 실패하는 결과로 이어진다.43 이는 근본적인 역설이다. 즉, 오버샘플링이 가장 필요한 ‘데이터 부족’ 상황이, 역설적으로 가장 진보된 오버샘플링 기법의 발목을 잡는 것이다.
- 하이브리드 모델의 부상: 이러한 딜레마를 해결하기 위해, 각 기법의 장점을 결합하는 하이브리드 모델들이 새로운 대안으로 떠오르고 있다. 예를 들어, 먼저 SMOTE를 사용해 소수 클래스 데이터의 양을 일차적으로 늘린 후, 이렇게 증강된 데이터를 기반으로 GAN을 학습시켜 더 현실적인 데이터를 생성하는 접근법이 제안되었다.47 또 다른 접근법은 VAE를 사용하여 데이터의 의미를 더 잘 표현하는 잠재 공간을 학습한 뒤, 이 잠재 공간 상에서 SMOTE와 유사한 보간법을 적용하여 더 지능적인 샘플을 생성하는 방식이다.42 이는 SMOTE의 단순한 기하학적 가정을 딥러닝이 학습한 의미론적 공간으로 대체하려는 시도이다.
결론적으로, SMOTE를 DGM으로 완전히 대체하는 것이 아니라, 각자의 강점을 융합하는 하이브리드 방식이 오버샘플링 기술의 미래 방향이 될 가능성이 높다.
표 4: 오버샘플링을 위한 SMOTE 대 생성 모델 전략 비교
| 구분 |
SMOTE 계열 기법 |
생성 모델 (GANs/VAEs) |
| 기본 메커니즘 |
기존 샘플 간의 기하학적 선형 보간 |
데이터의 잠재적 확률 분포 학습 및 샘플링 |
| 생성 데이터의 현실성 |
낮음-중간 (선형 가정에 의존, 인공적 패턴 생성 가능) |
높음 (복잡한 비선형 분포 및 상관관계 포착 가능) |
| 계산 복잡성 |
낮음 (상대적으로 빠르고 간단함) |
매우 높음 (대규모 신경망 학습 필요, 많은 시간 소요) |
| 데이터 요구량 |
낮음 (소수의 샘플만으로도 작동 가능) |
높음 (효과적인 학습을 위해 상당한 양의 데이터 필요) 47 |
| 최적 적용 환경 |
테이블 데이터, 데이터셋 크기가 작거나 중간일 때, 빠르고 강건한 베이스라인이 필요할 때 |
이미지/텍스트 데이터, 매우 복잡한 데이터 분포, 데이터 현실성이 중요하고 계산 자원이 충분할 때 |
본 보고서는 SMOTE의 기본 원리부터 시작하여, 그 메커니즘, 장단점, 진화 과정, 그리고 최신 대안 기술과의 비교를 통해 다각적인 고찰을 수행했다. 이를 종합하여 데이터 과학 실무자를 위한 구체적인 권장 사항과 불균형 학습 분야의 미래를 조망하며 결론을 맺는다.
- SMOTE를 고려해야 할 때: 주로 연속형 변수로 구성된 테이블 데이터에 중간 정도의 클래스 불균형이 존재하며, 복잡한 모델링 이전에 간단하고 강건한 베이스라인 성능을 확보하고자 할 때 SMOTE는 여전히 훌륭한 첫 번째 선택지이다.
- 어떤 변종을 선택할 것인가:
- 가장 먼저 표준 SMOTE를 적용하여 기준 성능을 측정하는 것으로 시작한다.
- 만약 클래스 간 중첩이나 경계면의 노이즈가 주요 문제로 의심된다면, Borderline-SMOTE나 SMOTE+Tomek과 같은 하이브리드 기법을 시도해볼 가치가 있다.
- 소수 클래스 내에서도 유독 학습이 어려운 샘플들이 존재한다고 판단될 경우, ADASYN을 적용하여 해당 영역에 생성 노력을 집중시키는 전략이 효과적일 수 있다.
- 어떻게 평가할 것인가:
- 항상 정확도가 아닌 AUC-PR, F1-점수, 기하 평균(G-Mean) 등 불균형 문제에 적합한 지표를 사용하여 성능을 평가해야 한다.
- SMOTE의 영향을 받지 않은 순수한 홀드아웃(hold-out) 테스트셋으로 최종 성능을 검증하는 것을 원칙으로 한다.
- 다양한 샘플링 비율을 실험해야 한다. 반도체 불량 예측 사례에서 보았듯이, 무조건 1:1로 맞추는 것이 최적이 아닐 수 있으며, 과도한 오버샘플링은 성능 저하를 유발할 수 있다.6
- 한 가지 중요한 경고: 의료 진단과 같이 해석 가능성과 신뢰성이 중요한 고위험 분야에서는 SMOTE 적용에 각별한 주의가 필요하다. 의료 사례 연구에서 나타났듯이, SMOTE는 통계적으로는 우수하지만 임상적으로는 비상식적인 모델을 만들어낼 수 있다.28 따라서 최종 모델의 예측 논리는 반드시 해당 분야 전문가의 검토를 거쳐야 한다.
클래스 불균형 문제는 여전히 머신러닝 분야의 활발한 연구 주제이며, SMOTE는 그 역사에서 중요한 이정표를 제시했다. 앞으로 이 분야는 다음과 같은 방향으로 발전할 것으로 전망된다.
- 리샘플링을 넘어서: 데이터 레벨의 접근법인 리샘플링 외에도, Focal Loss와 같이 소수 클래스의 손실(loss)에 더 큰 가중치를 부여하는 정교한 손실 함수를 설계하는 알고리즘 레벨의 해결책에 대한 관심이 계속해서 증가하고 있다. 궁극적으로는 데이터 레벨과 알고리즘 레벨의 접근법을 결합한 하이브리드 방식이 주류가 될 것이다.
- 지능형 하이브리드의 부상: 본 보고서에서 논의된 바와 같이, 불균형 학습의 미래는 단일 알고리즘의 승리가 아닌, 각기 다른 접근법의 강점을 융합하는 지능형 하이브리드 모델에 있다. VAE로 학습한 의미론적 공간에서 SMOTE를 적용하거나, SMOTE로 부트스트래핑한 데이터로 GAN을 학습시키는 등의 시도는 이러한 흐름의 시작을 보여준다.
- 남아있는 도전 과제: 다중 클래스 불균형 문제, 스트리밍 데이터 환경에서의 동적인 불균형, 그리고 예측 성능과 모델의 신뢰성 및 해석 가능성을 동시에 확보하는 문제는 여전히 해결해야 할 중요한 과제로 남아있다.
결론적으로, SMOTE는 데이터 불균형 문제를 해결하기 위한 기초적이면서도 여전히 실용적인 도구이다. 그러나 그 한계를 명확히 인지하고, 문제의 특성과 맥락에 맞는 더 정교하고 지능적인 하이브리드 솔루션을 탐색하는 것이 현대 데이터 과학자에게 요구되는 역량이라 할 수 있다.