使用已经实现的预处理包装程序以及mlr中自己的包装程序,我想知道以下示例按什么顺序计算预处理步骤?
classif.lrn.net = makePreprocWrapperCaret(classif.lrn.net, ppc.nzv=TRUE, ppc.corr=TRUE, ppc.conditionalX=TRUE, ppc.center=TRUE, ppc.scale=TRUE, ppc.spatialSign=TRUE)
classif.lrn.net = makeSMOTEWrapper(classif.lrn.net)
classif.lrn.net = makeImputeWrapper(learner=classif.lrn.net, classes = list(numeric = imputeMedian(), integer =imputeMedian()))
从mlr教程中,我知道在caretPreprocWrapper操作中按以下顺序应用:
近零方差过滤器,相关过滤器,插补,空间符号。
此外,SMOTE-Wrapper将在之前执行(因为它在代码中的caretWrapper之后)。
但是什么时候进行immputationWrapper? 我认为,在空间符号转换之前进行插补非常重要(此顺序也在caretPreprocWrapper中实现)。由于我使用自己的插值包装器,因此不确定,是否以及如何确保插值在不同的caretPreproc-Step之间完成?
答案 0 :(得分:1)
按照指定的方式,插补会在整个过程的开始进行,并且只会执行一次(即不在不同的插入符步骤之间)。最外面的包装器首先运行,并且对包装的学习器的内部运行情况一无所知。