【问题标题】:mlr - Access data between or after preprocessing stepsmlr - 在预处理步骤之间或之后访问数据
【发布时间】:2017-10-12 23:15:19
【问题描述】:

在 mlr 中执行预处理步骤使用包装器后,有没有办法访问数据?这是代码的剥离版本:

library(mlr)
library(mlbench)

data <- BreastCancer[, 2:11]
lrn <- makeLearner(cl = "classif.ranger",
                        predict.type = "prob",
                        fix.factors.prediction = TRUE,
                        importance = "permutation")

lrn <- makeImputeWrapper(lrn, classes = list(integer = imputeMedian(),
                                                  numeric = imputeHist(),
                                                  factor = imputeMode()))

lrn <- makeRemoveConstantFeaturesWrapper(lrn, na.ignore = TRUE)

classif.task <- makeClassifTask(data = rawdata, target = "Target", positive = "1")

model <- train(lrn, classif.task)

代码定义了一个学习器,删除了常量特征并执行了插补。有没有办法查看移除常量特征后的数据,或者更有趣的是,在插补后的数据?

【问题讨论】:

    标签: r mlr


    【解决方案1】:

    目前还没有实现——包装器的目的是封装所有内容,这样您就不必担心中间步骤。

    但是,您可以使用 impute() 函数单独进行相同的插补(同样用于删除常量特征)。请参阅the tutorial 了解更多信息。

    【讨论】:

    • 感谢您的快速回复。我使用包装器的原因,例如上面没有提到的自定义代码是将训练和评分代码整合到一个函数中,同时在两者之间传递参数(以及在必要时执行超参数调整)。但是,在“真实”工作流程中测试/调试代码通常与使用单元测试一样有用。 并且在某些情况下,第三个包,例如在我的例子中,xgboostExplainer (medium.com/applied-data-science/…) 需要预处理的训练数据。
    • 如果您编写了自定义 PreprocessingWrappers (mlr-org.github.io/mlr-tutorial/devel/html/preproc/…),您可以简单地将内容存储在全局环境 (
    猜你喜欢
    • 1970-01-01
    • 2019-04-18
    • 1970-01-01
    • 2018-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多