[R] SMOTE를 활용한 불균형 데이터 처리(Class balancing using SMOTE) - DMwR::SMOTE

이향기·2021년 6월 9일
0

1) TRUE:FALSE = 5:5

library(DMwR)
over_true_n <- 100 # over-sampliong할 true case 수
sampled_dt <- DMwR::SMOTE('Y ~.',
data = dt,
perc.over = over_true_n, 
k = 11 # K-NN에서 k
)

2) TRUE:FALSE = 3:7

library(DMwR)
true_n <- # true class의 case 수
false_n <- # false class의 case 수
sampling_ratio <- 0.7 # 7:3 sampling
target_true_n <- round(true_n * 1.2) # true class를 1.2배 over-sampling
target_false_n <- round((sampling_ratio / (1 - sampling_ratio)) * target_true_n) # 원하는 false class의 case 수
over_true_n <- target_true_n - true_n # over-sampliong할 true case 수
over_false_ratio <- (target_false_n / over_true_n) * 100 # over_true_n 대비 false case 수(배수)
sampled_dt <- SMOTE('Y ~.',
data = dt,
perc.over = over_ng_n,
perc.under = over_ok_ratio,
k = 11 # K-NN에서 k
)
profile
Data science & Machine learning, baking and reading(≪,≫)

0개의 댓글