• up-sampling을 할때 이점과 영향
  • SMOTE 알고리즘

 

1.  up-sampling을 할때 이점과 영향

down-sampling은 데이터 수가 많다고 생각될 경우 사용을 하지만, 보통 데이터수가 많으면 많을수록 좋기때문에 

up-sampling을 down-sampling보다 선호합니다.

 

unsupervised machine learning model과 다르게 supervised model은 outcome의 확률분포를 학습하지 않습니다. 

따라서, training data의 outcome비율을 1:1로 맞추기 위해 up-sampling을 해주어도 절대! test data의 outcome 비율을 변경하기 위해 test data도 up-sampling을 해주지 않습니다!

 

'데이터의 비율을 달리하여 학습한 모델인데 test data도 비슷한 분포를 띄어야 학습결과가 좋게 나온다?'라고 쉽게 오해할 수 있습니다.

하지만, 기본적으로 test data는 변경하여 사용하는 것이 아닐 뿐더러

 

1) 모델이 학습할 때, supervised model의 경우 outocme의 비율을 학습하지 않습니다. 

upsampling의 목적은 imbalance한 데이터를 학습할 경우 모델이 한쪽 class로 판단하는 모델로 빠르게 도달하지 않도록 방해하는 역할을 합니다. up-sampling은 rare class의 데이터들을 복원추출하여 데이터를 늘리는것이기 때문에 다량의 학습데이터를 학습하는 효과를 주는것이 아닌, rare class의 특성을 반영한 데이터들이 늘어나서 over-fitting이 됩니다. 

 

2) test data의 분포를 모델이 체크하지 않습니다.

training data로 모델을 만들고 나서 test data를 이용해 모델의 성능을 평가하는데 이때, test data는 한개씩 들어가서 이를 (binary의 경우) 1,0중에 판단하여 결과값만 내기때문에 outcome의 분포는 상관하지 않습니다.  

 

 

2. SMOTE 알고리즘

Up-sampling의 하나의 종류로, k 최근접 이웃 method를 이용한 방법입니다.

우선, k 최근접 이웃 모델을 사용할때처럼 rare class의 데이터들중 하나의 데이터를 선택하고 그 주변에 얼마나 많은 k개의 이웃을 선택할 것인지 정해줍니다. 

 

예를 들어, k가 5개이면, 정해진 중심으로부터 5개의 이웃만 고려를 할것입니다.

 

그리고 간단히, SMOTE알고리즘이 구동되는 방식을 보자면,

X는 선택한 점, X(nn)은 그 주변에 선택된 하나의 근접이웃, u는 균등분포입니다. 

 

SMOTE 알고지름 가설

 

예를 들면, X가 (5,1)이고 X(nn)이 (2,3)인 경우 X(nn)부터 X까지의 거리를 표현하면 (-3,2)가 됩니다. 

 

 

 

Synthetic 계산 예제 

 

두 점사이 거리에서 0부터 1사이의 값이 랜덤으로 곱해져서 둘 사이에 위치하는 새로운 데이터가 생성이 될 것입니다. 

 

이 방법은 rare class의 있는 데이터를 고르는것이 아닌, 비슷한 데이터를 생성해내기 때문에 약간의 차이는 있지만 

그래도 over-fitting의 문제를 고려해야합니다. 

 

 

reference: www.youtube.com/watch?v=Vhwz228VrIk

 

'데이터분석 > 머신러닝' 카테고리의 다른 글

LASSO 이해하기  (0) 2021.06.28
Sensitivity, Specificity, PPV, NPV  (0) 2021.04.26
imbalance classification 다루는 방법 2  (0) 2021.04.05
Tree 모델과 R tree library  (0) 2021.01.27
Cross-validation (교차검증)  (0) 2021.01.07

+ Recent posts