r - проблема с dummyVars, когда уровень не находится в наборе тестов - PullRequest
0 голосов
/ 16 мая 2019

У меня есть несколько учебных / тестовых разделов. В одном разделе одна переменная имеет только два уровня, и она сильно разбалансирована. Проблема в том, что в тестовом наборе есть только один уровень для всех строк, и это создает проблемы

Как я понимаю, и работает для других наборов данных, я должен сделать это

  dummyfier = dummyVars(~ ., train_char)
  train_char = predict(dummyfier, train_char) %>% data.frame()
  test_char = predict(dummyfier, test_char) %>% data.frame()

Проблема в том, что я получаю следующую ошибку

Error in `contrasts<-`(`*tmp*`, value = contr.funs[1 + isOF[nn]]) : 
  contrasts can be applied only to factors with 2 or more levels

оставляю пример

   train_char <- data.frame(da_b45 = c("N", "N", "S", "N"))
   test_char <- data.frame(da_b45 = c("N", "N", "N"))
   dummyfier = dummyVars(~ ., train_char)
   train_char = predict(dummyfier, train_char) %>% data.frame()
   test_char = predict(dummyfier, test_char) %>% data.frame()

Как я понимаю, обучающий набор должен иметь значения возможных переменных, а тестовый набор должен только проверять, какая из этих переменных. Я действительно не понимаю этого поведения

...