mlr - конфликт имени параметра с фильтром randomForestSRC_var.select с использованием аргумента метода - PullRequest
1 голос
/ 25 сентября 2019

Когда я использую фильтр randomForestSRC_var.select и передаю ему параметр метода (например, method = "vh" для поиска переменных), я получаю конфликт имен, поскольку внутренняя функция также использует параметр с именем method.Это было поднято как проблема на Github, но, как говорили, было решено: https://github.com/mlr-org/mlr/issues/1066. Я также открыл проблему на Github: https://github.com/mlr-org/mlr/issues/2639, но подумал, что это может быть более подходящим форумом, на случай, еслиэто не ошибка, а ошибка с моей стороны.

Вот мой код:

library(survival)
#> Warning: package 'survival' was built under R version 3.5.3
library(mlr)
#> Loading required package: ParamHelpers

data(veteran)
set.seed(24601)
task_id = "VET"
vet.task <- makeSurvTask(id = task_id, data = veteran, target = c("time", "status"))
vet.task <- createDummyFeatures(vet.task)
tuning = makeResampleDesc("CV", iters=2, stratify=TRUE) 
outer = makeResampleDesc("CV", iters=2, stratify=TRUE)

filt = makeFilterWrapper(
    makeLearner(cl="surv.coxph", id = "cox.filt.rfsrc", predict.type="response"), 
    fw.method="randomForestSRC_var.select",
    fw.abs=4,
    cache=TRUE,
    ntree=500,
    method="vh"
)
bmr = benchmark(filt, vet.task, outer, list(cindex), show.info = TRUE, models=TRUE, keep.extract=FALSE)
#> Task: VET, Learner: cox.filt.rfsrc.filtered
#> Resampling: cross-validation
#> Measures:             cindex
#> Error in (function (task, method = "randomForestSRC_importance", fval = NULL, : formal argument "method" matched by multiple actual arguments

Создано в 2019-09-25 с помощью пакета Представить (v0.3.0)

Если я изменю метод аргумента на «мето», чтобы попытаться избежать столкновения, я получу другую ошибку:

library(survival)
#> Warning: package 'survival' was built under R version 3.5.3
library(mlr)
#> Loading required package: ParamHelpers

data(veteran)
set.seed(24601)
task_id = "VET"
vet.task <- makeSurvTask(id = task_id, data = veteran, target = c("time", "status"))
vet.task <- createDummyFeatures(vet.task)
tuning = makeResampleDesc("CV", iters=2, stratify=TRUE) 
outer = makeResampleDesc("CV", iters=2, stratify=TRUE)

filt = makeFilterWrapper(
    makeLearner(cl="surv.coxph", id = "cox.filt.rfsrc", predict.type="response"), 
    fw.method="randomForestSRC_var.select",
    fw.abs=4,
    cache=TRUE,
    ntree=500,
    metho="vh"
)
bmr = benchmark(filt, vet.task, outer, list(cindex), show.info = TRUE, models=TRUE, keep.extract=FALSE)
#> Task: VET, Learner: cox.filt.rfsrc.filtered
#> Resampling: cross-validation
#> Measures:             cindex
#> Error in -im[, 1L]: invalid argument to unary operator

Созданов 2019-09-25 пакетом представ (v0.3.0)

Кажется, эта ошибка исходит из строки:

setNames(-im[, 1L], rownames(im))

в фильтре минимальной глубины РФ, и я предполагаю, подразумевается, что переменная im, результаты фильтра, равна NULL (хотя я не уверен, почему).Есть ли способ обойти эту проблему?Извиняюсь за размещение здесь и на GH.

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