Когда я использую фильтр 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.