티스토리 뷰

728x90

<SMOTE>

k값을 설정하여 1~k 정수값(균일분포)에서 랜덤하게 n을 설정한 후, 

n에서 가까운 데이터를 새롭게 선택하여 생성하는 방식으로 지정한 데이터에 도달할 때 까지 반복 

 

<R>

library(unbalanced)
library(tidyverse)

x <- table %>% filter(x==T) %>% summarise(x=n())
f <- table %>% filter(x==F) %>% summarise(y=n())
pv <- round(f/x)*100 - 100

table$x <- as.factor(table$x)

bc <- ubBalance(table[, c('length', 'weight')], 
		table$x, type='ubSMOTE', positive='TRUE',
		percOver=pv, percUnder=0, k=5)

bind_rows(bc$x %>% mutate(x=bc$y), 
table %>% filter(x=='FALSE') %>% select(length, weight, x)

 

'데이터 분석 > 전처리' 카테고리의 다른 글

결손값 처리  (0) 2023.12.22
정규화  (0) 2023.12.22
SQL, R 전처리 함수 모음  (0) 2023.12.22
Grayscale images to 3 channels for CNN  (0) 2023.02.08
numpy 행렬 나누기  (0) 2023.01.05
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함