使用univariate.model.score过滤器对审查数据进行mlr中的特征选择

时间:2019-01-15 06:15:21

标签: feature-selection mlr survival

我正在尝试使用mlr和univariate.model.score过滤器在R中执行功能选择。在文档中它说surv.rpart是此过滤器的默认学习器。我的数据集包含经过审查的生存数据,我想使用其他学习者,例如surv.coxph,但是我对如何做到这一点感到困惑。换句话说,我希望univariate.model.score过滤器使用cindex和Cox模型创建其分数。

我可以使用makeFilterWrapper实现吗?例如

combo.task <- makeSurvTask(data = combo_baseline, target = c("timeToEvent", "status"))
cox.lrn <- makeLearner(cl="surv.coxph", predict.type="response")
inner = makeResampleDesc("CV", iters=5)
lrn = makeFilterWrapper(learner = cox.lrn, fw.method="univariate.model.score", fw.abs=10)
res = resample(learner = lrn, task = combo.task, resampling=inner, models=TRUE)
res$aggr

我无法共享数据,因此我没有提供任何数据,但我希望有人可以向我展示如何正确使用代码。谢谢。

1 个答案:

答案 0 :(得分:0)

我通过阅读mlr代码找到了答案。过滤器“ univariate.model.score”采用参数perf.learner,该参数可让您指定用于评估过滤器性能的学习器。例如:

combo.task <- makeSurvTask(data = combo_baseline, target = c("timeToEvent", "status"))
cox.lrn <- makeLearner(cl="surv.coxph", predict.type="response")
inner = makeResampleDesc("CV", iters=5)
lrn = makeFilterWrapper(learner = cox.lrn, fw.method="univariate.model.score", fw.abs=10, perf.learner=cox.lrn)
res = resample(learner = lrn, task = combo.task, resampling=inner, models=TRUE)

它也接受参数perf.measure(性能度量)和perf.reampling(重采样)(重采样策略)。