Я пытаюсь использовать пакет «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: Я попытался сделать так, чтобы уровни факторных переменных были одинаковыми как для обучающих, так и для тестовых наборов данных, но это не сработало