Объединение getOOBPreds с вложенной передискретизацией и настройкой параметров - PullRequest
0 голосов
/ 11 сентября 2018

В пакете R::mlr я прочитал из учебник о том, что функция getOOBPreds позволяет получить доступ к прогнозам «из сумки», скажем, из модели случайного леса , но я не могу понять, как чтобы использовать это во вложенной процедуре передискретизации, предназначенной для настройки гиперпараметров.

Я понимаю, что внутренний цикл каким-то образом

Спасибо за обмен идеями / подсказками!

Я пробовал как внутренний цикл:

makeTuneWrapper(lrnr,
  resampling = "oob",
  par.set = params,
  control = ctrl,
  show.info = TRUE,
  measures =  list(logloss, multiclass.brier,
timetrain))

... но значение "oob" для повторной выборки параметров недопустимо.

предварительный MRE:

library(mlr)

# Task
tsk = iris.task
# Learner
lrnr <- makeLearner("classif.randomForestSRC", predict.type = "prob")
# Hyperparameters
params <- makeParamSet(makeIntegerParam("mtry",lower = 2,upper = 10),
                   makeIntegerParam("nodesize",lower = 1,upper = 100),
                   makeIntegerParam("nsplit",lower = 1,upper = 20))
# Validation strategy
rdesc_inner_oob <- makeResampleDesc("oob")  # FAILS
ctrl <- makeTuneControlRandom(maxit = 10L)
tuning_lrnr = makeTuneWrapper(lrnr,
                   # resampling = oob,        # ALSO WRONG
                   resampling = rdesc_inner_oob,
                   par.set = params,
                   control = ctrl,
                   measures =  list(logloss, multiclass.brier, timetrain))

outer = makeResampleDesc("CV", iters = 3)
r = resample(learner  = tuning_lrnr,
           task       = tsk,
           resampling = outer,
           extract    = getOOBPreds,
           show.info  = TRUE,
           measures   = list(multiclass.brier))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...