Как удалить переменные из модели, созданной из пакета mlr в R? - PullRequest
0 голосов
/ 25 мая 2020

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

Я пытаюсь удалить некоторые функции из созданной модели mlr без необходимости подгонки модель снова. Например, если мы берем данные Boston из библиотеки MASS и создаем модель mlr, например:

library(mlr)
library(MASS)

# Using the mlr package to train the data:
bTask  <- makeRegrTask(data = Boston, target = "medv")
bLearn <- makeLearner("regr.randomForest")
bMod <- train(bLearn, bTask)

А затем я использую task и обучал model в какой-то функции, например:

someFunc <- function(task, model){
  pred <- predict(model, task)
  pred <- pred$data$response
  head(pred,10)
}
someFunc(bTask,bMod)

Все работает нормально. Но мне интересно, можно ли удалить некоторые переменные из bMod без необходимости снова соответствовать обученной модели mlr?

Я знаю, что можно удалить функции из task, используя dropFeatures(), например:

bTask1 <- dropFeatures(bTask, c("zn", "chas", "rad"))

Но если я попытаюсь смешать bTask1 и bMod вот так :

pred1 <- predict(bMod, btask1)

Я получаю разумную ошибку:

Ошибка в predic.randomForest (.model $ Learner.model, newdata = .newdata,: переменные в обучающих данных отсутствуют в новых данных

Есть ли способ удалить некоторые функции из созданной модели mlr (например, bMod) без повторной подгонки?

...