AI & GPU

SMOTE

Tech Crunchy 2025. 5. 4. 14:27
728x90

개요

SMOTE(Synthetic Minority Over-sampling Technique)는 불균형한 데이터셋에서 소수 클래스(Minority Class)의 데이터를 인공적으로 생성하여 데이터의 균형을 맞추는 대표적인 오버샘플링(Oversampling) 기법입니다. 기존의 단순 오버샘플링이 소수 클래스 데이터를 단순 복제하는 방식이라 과적합(Overfitting) 위험이 높았다면, SMOTE는 새로운 데이터를 합성하여 이 문제를 완화합니다.

 

내용

SMOTE는 소수 클래스 데이터 중 임의의 샘플을 하나 선택 후, 해당 데이터의 K개의 최근접 이웃(KNN)을 찾습니다. 그 다음 선택한 샘플과 이웃 샘플을 선분으로 연결하고, 이 선분 위에 임의의 위치를 선택해 새로운 데이터를 생성합니다.

 

 

새롭게 생성되는 샘플에 대한 수식은 아래와 같습니다.

 

 

SMOTE는 소수 클래스 데이터를 기존 데이터의 조합으로 합성하여 데이터 불균형 문제를 효과적으로 해결하는 오버샘플링 기법입니다. 과적합 위험이 적고, 정보 손실이 없다는 장점이 있지만, 노이즈 데이터 생성 및 클래스 경계 무시에 주의해야 하며, 반드시 학습 데이터에만 적용해야 합니다.

 

예시

from imblearn.over_sampling import SMOTE

smote = SMOTE(random_state=42)
X_train_resampled, y_train_resampled = smote.fit_resample(X_train, y_train)

 

728x90

'AI & GPU' 카테고리의 다른 글

데이터 익명화  (0) 2025.05.04
RFE  (0) 2025.05.04
슬라이딩 윈도우 메커니즘  (1) 2025.05.04
Word2Vec  (0) 2025.04.26
Tensor Parallelism과 Pipeline Parallelism  (0) 2025.04.20