SMOTE관련 패키지는 smotefamily입니다. 패키지를 설치해주고 library를 호출해줍니다.
install.packages("smotefamily")
library(smotefamily)
사용방법은 매우 간단합니다.
독립변수들로 구성된 data와 target variable를 각각 넣어주시고, hyper-parameter인 (K와 dup_size) 를 설정해주시면됩니다. 아래 코드에서, added_data에는 생성된 데이터가 들어가며, new_data에는 생성된 데이터와 기존 데이터가 함께 합쳐져서 들어갑니다. new_y는 기존 y값과 새로운 y값이 합쳐져서 들어가집니다.
## 2차원 가상 데이터 생성
data_example = sample_generator(5000,ratio = 0.80)
smote1 = SMOTE(data_example[,-3],target = data_example[,3], K = 5, dup_size = 1)
added_data<-smote1$syn_data[,-ncol(smote1$data)]
new_data<-smote1$data[,-ncol(smote1$data)]
new_y<-smote1$data[,ncol(smote1$data)]
BLSMOTE와 DBSMOTE도 마찬가지 방식으로 사용하시면 됩니다. 단 DBSMOTE의 경우, 'igraph' 패키지를 필요로 하기때문에 이를 설치하신 후 사용하셔야 합니다.
blsmote1 = BLSMOTE(data_example[,-3],data_example[,3])
added_data<-blsmote1$syn_data[,-ncol(blsmote1$data)]
new_data<-blsmote1$data[,-ncol(blsmote1$data)]
new_y<-blsmote1$data[,ncol(blsmote1$data)]
# install.packages("igraph")
library(igraph)
dbsmote1 = DBSMOTE(data_example[,-3],data_example[,3])
added_data<-dbsmote1$syn_data[,-ncol(dbsmote1$data)]
new_data<-dbsmote1$data[,-ncol(dbsmote1$data)]
new_y<-dbsmote1$data[,ncol(dbsmote1$data)]
각 방법들에 대한 간단한 설명은 다음 포스팅에서 보실 수 있습니다.
https://bluediary8.tistory.com/143
반응형
'R프로그래밍' 카테고리의 다른 글
[R] LASSO, Ridge 적합하기 (0) | 2022.12.11 |
---|---|
R프로그래밍 - 분류문제에서의 성능지표 (accuracy/precision/recall/F-measure) (1) | 2022.05.23 |
R프로그래밍 - 회귀분석에서의 성능 지표 MSE, MAE, MAPE (0) | 2022.05.22 |
R프로그래밍 - 문자열 대체 함수 gsub [], () <> 없애기 (1) | 2020.07.03 |
R프로그래밍 - NA, Inf, -Inf 데이터 찾는법 (0) | 2020.07.02 |
댓글