Проблема с избыточной и недостаточной выборкой с ROSE в R - PullRequest
0 голосов
/ 08 ноября 2019

У меня есть набор данных для классификации между выигранными делами (14399) и проигранными (8677). Набор данных имеет 912 прогнозирующих переменных. Я пытаюсь пересдать выборку проигранных дел, чтобы достичь почти того же числа, что и выигранных дел (поэтому по 14399 делам для каждого из выигранных и проигранных дел).

TARGET - столбец с потерянными (0)и выиграл (1) случаев:

table(dat_train$TARGET)

    0     1 
 8677 14399 

Теперь я пытаюсь сбалансировать их, используя ROSE ovun.sample

dat_train_bal <- ovun.sample(dat_train$TARGET~., data = dat_train, p=0.5, seed = 1, method = "over")

Я получаю эту ошибку:

Error in parse(text = x, keep.source = FALSE) : 
  <text>:1:17538: unexpected symbol
1: PPER_409030143+BP_RESPPER_9639064007+BP_RESPPER_7459058285+BP_RESPPER_9339059882+BP_RESPPER_9339058664+BP_RESPPER_5209073603+BP_RESPPER_5209061378+CRM_CURRPH_Initiation+Quotation+CRM_CURRPH_Ne

Кто-нибудь может помочь? Спасибо: -)

1 Ответ

0 голосов
/ 08 ноября 2019

Воспроизведение вашего кода из фиктивного примера Я нашел ошибку в вашей формуле dat_train$TARGET~. необходимо исправить как TARGET~.

dframe <- tibble::tibble(val = sample(c("a", "b"), size = 100, replace = TRUE, prob = c(.1, .9))
                         , xvar = rnorm(100)
                         )

# Use oversampling
dframe_os <- ROSE::ovun.sample(formula = val ~ ., data = dframe, p=0.5, seed = 1, method = "over")

table(dframe_os$data$val)
...