Обработка тестовых / обучающих данных в R, когда уровни переменной отличаются - PullRequest
0 голосов
/ 02 марта 2019

Я не уверен, что лучший подход к обработке следующего типа ошибки:

код

a = LETTERS[1:4]
b = LETTERS[1:5]
n1 = 70
n2 = 30

s1 = sample(a, n1, replace = T)
s2 = sample(b, n2, replace = T)
s3 = rbinom(n1, 1, 0.5)
s4 = rbinom(n2, 1, 0.5)


train <- data.frame( x1 = s1, y1 = s3 )
test <- data.frame( x1 = s2, y1 = s4 )

m <- glm(y1 ~ x1, data=train, family = "binomial")

predict(m, test, type="response")

ошибка

 Error in model.frame.default(Terms, newdata, na.action = na.action,
 xlev = object$xlevels) : 

  factor x1 has new levels E

ВышеMWE ошибки, которую я имел в некотором коде, который, как оказалось, имел уровень обучающих данных, которых не было в данных тестирования.В приведенном выше примере это уровень E.

Что я могу сделать, чтобы оба кадра данных имели одинаковые уровни для каждой переменной?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...