我在机器学习项目中使用mlr。我正在使用重复5次的5倍交叉验证和许多不同的算法。我正在使用MICE(针对链式方程的多次估算)估算缺少的数据。我还需要标准化数字数据。
我读过的所有内容都说,为避免数据泄漏,我必须在交叉验证循环中执行任何与数据相关的步骤,例如标准化。但是,例如,当normalizeFeatures方法应用于整个任务时,如何在mlr中实现呢?
这就是我所拥有的(没有显示鼠标的插补,因为在调用此代码之前已完成了插补-可能是错误的):
surv.task <- makeSurvTask(id = task_id, data = dataset, target = c(time_var, status_var))
surv.task <- normalizeFeatures(surv.task)
surv.task <- createDummyFeatures(surv.task)
surv.measures = list(cindex)
ridge.lrn <- makeLearner(cl=”surv.cvglmnet”, id = “ridge”, predict.type=”response”, alpha = 0, nfolds=5)
cboostcv.lrn <- makeLearner(cl=”surv.cv.CoxBoost”, id = “CoxBoostCV”, predict.type=”response”)
outer = makeResampleDesc(“RepCV”, reps=num_iters, folds=5, stratify=TRUE)
learners = list(ridge.lrn, cboostcv.lrn)
bmr = benchmark(learners, surv.task, outer, surv.measures, show.info = TRUE)
如何在交叉验证循环中调用normalizeFeatures(或进行归因)?