Проблемы с моим кодом и пакетом Lime в R - PullRequest
0 голосов
/ 05 мая 2020

Я пытаюсь использовать пакет «lime» для интерпретации модели случайного леса с набором данных «import85», но когда я запускаю команду объяснения, она возвращает ошибку:

library(lime)
library(caret)

data("imports85", package = "randomForest")

imp85 <- imports85[,-2] 
imp85 <- imp85[complete.cases(imp85), ] 
imp85[] <- lapply(imp85, function(x) if (is.factor(x)) x[, drop=TRUE] else x)
stopifnot(require(randomForest)) 

NROW(imp85)*0.7
idx <- sample(1:NROW(imp85),135)
test <- imp85[idx, c(1:4, 6:25)]
train <- imp85[-idx, c(1:4, 6:25)]
resp <- imp85[[5]][-idx]

model <- train(train, resp, method = 'rf')
explainer <- lime(train, model)

explanation <- explain(test, explainer, n_labels = 1, n_features = 2) 

Ошибка в predic.randomForest (modelFit, newdata, type = "prob"):
Тип предикторов в новых данных не совпадает с данными обучения.

Как я могу решить эту проблему ?

РЕДАКТИРОВАТЬ 1: Я попытался сделать так, чтобы уровни факторных переменных были одинаковыми как для обучающих, так и для тестовых наборов данных, но это не сработало

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