【问题标题】:Order of preprocessing step in mlr package in RR中mlr包中预处理步骤的顺序
【发布时间】:2019-04-18 17:11:56
【问题描述】:

使用已经实现的预处理包装器以及 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-Tutorial 我知道在 caretPreprocWrapper 中,操作按以下顺序应用:

近零方差滤波器、相关滤波器、插补、空间符号。

此外,SMOTE-Wrapper 将在之前进行(因为它在代码中的 caretWrapper 之后)。

但是 immputationWrapper 什么时候会进行呢? 我认为在空间符号转换之前进行插补是很重要的(这个顺序也在 caretPreprocWrapper 中实现)。由于我使用自己的 imputation-Wrapper,我不确定是否以及如何确保在不同的 caretPreproc-Steps 之间完成插补?

【问题讨论】:

    标签: r imputation mlr


    【解决方案1】:

    按照您指定的方式,插补发生在整个过程的开始,并且仅发生一次(即不在不同的插入符号步骤之间)。最外层的包装器首先运行,它对它所包装的学习器的内部工作一无所知。

    【讨论】:

    • 谢谢!因此,如果无法在插入符号预处理步骤之间插入插补包装器,您是否建议将其放在插入符号预处理步骤之前或之后(即代码中的相反方式)?插补发生在空间转换之前不是最重要的吗(即把它放在代码中的 caret-preproc.-wrapper 之后)?
    • 你设置它的方式应该完全符合我的想法。虽然不可能在插入符预处理步骤之间直接插入一些东西,但您可以将其拆分为多个包装器,即一个用于 ppc 的插入符预处理包装器,一个用于空间等,然后将它们相应地分层。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-15
    相关资源
    最近更新 更多